2012-03-18 24 views
15

Hola, estoy leyendo un archivo csv y obtengo la fecha en 01-01-2011, pero lo quiero en el formato 01-ene-2011 cuando escribo el archivo .xlsx usando la biblioteca apache poi. mi código esApache poi date format

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

pero no funciona para mí. donde estoy haciendo un error

+0

lo siento, pero ¿qué es cs? – Leo

+0

@Leo Es un XSSFCellStyle – stg

Respuesta

22

No solo necesita crear un formato de celda, sino que también debe aplicarlo a la celda.

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); 

En segundo lugar, es necesario tener en cuenta que Java y Excel difieren ligeramente en cómo se expresan reglas Fecha de formato. Debe abrir una copia de Excel, formatear una celda de muestra como lo desee, luego tomar nota de las reglas de formato necesarias. En su caso, había optado por una mayúscula tipo M de Java, mientras que en Excel está en minúscula (ver más arriba)

Cuestiones relacionadas