2013-01-14 10 views
14

Chcę ustawić datę w formacie daty w pliku Excel z Apache POI. Wartość zostanie ustawiona w taki sposób, że na pasku adresu będzie wyświetlana w mm/dd/rrrr, aw komórce będzie wyświetlana w dd-mmm (data w numerze i miesiąc w ciąg jak 01-sty). Czy pomożecie mi w tej sytuacji?Ustawianie formatu daty za pomocą Apache POI

Odpowiedz

17

Możesz zastosować HSSFCellStyle do komórki, którą musisz wypełnić. Oto niektóre fragmenty kodu z mojej przeszłości pracy, nie jest w stanie nienaruszonym, ale przedstawia podstawowe pojęcia:

HSSFRow row = sheet.createRow(0); 
HSSFCell cell = row.createCell((short) 0); 
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); 

SimpleDateFormat datetemp = new SimpleDateFormat("yyyy-MM-dd"); 
Date cellValue = datetemp.parse("1994-01-01 12:00"); 
cell.setCellValue(cellValue); 

//binds the style you need to the cell. 
HSSFCellStyle dateCellStyle = wb.createCellStyle(); 
short df = wb.createDataFormat().getFormat("dd-mmm"); 
dateCellStyle.setDataFormat(df); 
cell.setCellStyle(dateCellStyle); 

Więcej infomation o formacie daty w JDK, należy przeczytać: http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

+0

Dzięki @Gavin. Bardzo mi to pomogło. Ale chcę usunąć sygnaturę czasową od daty. Czy możesz mi pomóc w tym zakresie? – sairajgemini

+0

Co masz na myśli przez "usunąć sygnaturę czasową od daty"? @SaikatGupta –

+0

Witam @Gavin: W komórce programu Excel data powinna wyglądać jak "30-JAN", ale jeśli wybiorę komórkę, w pasku adresu data powinna być wyświetlana jako "1/30/2013" zamiast "1/30/2013 12 : 01: 00 AM "(bez sygnatury czasowej) – sairajgemini

Powiązane problemy