2012-03-18 17 views
15

Ciao sto leggendo il file csv e ricevo la data nel 01-01-2011 ma lo voglio nel formato 01-gen-2011 quando scrivo il file .xlsx usando la libreria apache poi. il mio codice èFormato data apache poi

XSSFDataFormat df = workBook.createDataFormat(); 
cs.setDataFormat(df.getFormat("dd-MMM-yy")); 

ma non funziona per me. dove sto sbagliando?

+0

scusa, ma che cos'è cs? – Leo

+0

@Leo È un XSSFCellStyle – stg

risposta

22

Non solo è necessario creare un formato di cella, ma è anche necessario applicarlo alla cella!

XSSFDataFormat df = workBook.createDataFormat(); 
cs.setDataFormat(df.getFormat("d-mmm-yy")); 

// Get/Create our cell 
XSSFRow row = sheet.createRow(2); 
XSSFCell cell = row.createCell(3); 

// Set it to be a date 
Calendar c = Calendar.getInstance(); 
c.set(2012,3-1,18); // Don't forget months are 0 based on Calendar 
cell.setCellValue(c.getTime()); 

// Style it as a date 
cell.setCellStyle(cs); 

In secondo luogo, è necessario essere consapevoli del fatto che Java ed Excel sono divergenti nel modo in cui esprimono regole di formattazione Data. Dovresti aprire una copia di Excel, formattare una cella campione come desideri, quindi prendere nota delle regole di formattazione necessarie. Nel tuo caso, sei andato per un maiuscolo in stile Java M, mentre in Excel è in minuscolo (vedi sopra)

Problemi correlati