DateTimeStamp в Excel (POI) - PullRequest
       3

DateTimeStamp в Excel (POI)

0 голосов
/ 10 января 2012

Мне нужна помощь в Apache poi

Я создаю Excel с использованием Apache POI

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();

HSSFRow row = sheet.createRow(2);

HSSFCell cell = row.createCell(1);

cell.setCellValue(someService.getDate());

Я получаю эту дату в DateFormat с TimeStamp MM / dd / yyyy 00: 00: 00 AM

, но после генерации Excel не отображается правильное значение в DateFormat.

Есть решение?

Ответы [ 2 ]

4 голосов
/ 10 января 2012

Вам нужно указать Excel, какой формат применять к ячейке, чтобы он знал, как его отформатировать

Возможно, вы хотите что-то вроде

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
CreationHelper createHelper = wb.getCreationHelper();

// Cell styles can be re-used, create only once
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));


....
// In your loop
Row row = sheet.createRow(i);
Cell cell = row.createCell(1);

Date value = service.getDate();
cell.setCellValue(value);
cell.setCellStyle(cellStyle);
3 голосов
/ 10 января 2012

Самое простое решение - установить значение даты в виде отформатированной строки, я думаю.

...
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
cell.setCellValue(simpleDateFormat.format(someService.getDate()));
...