如何将单元格值设置为“日期”并应用默认的Excel日期格式?

我已经使用Apache POI一段时间来以编程方式读取现有的Excel

2003文件。现在,我有一个新的要求,即在内存中创建整个.xls文件(仍然使用Apache

POI),然后将它们最后写入文件中。困扰我的唯一问题是带日期的单元格的处理。

考虑以下代码:

Date myDate = new Date();

HSSFCell myCell;

// code that assigns a cell from an HSSFSheet to 'myCell' would go here...

myCell.setCellValue(myDate);

当我将包含此单元格的工作簿写到文件中并用Excel打开它时,该单元格将显示为数字。是的,我确实意识到Excel将其“日期”存储为自1900年1月1日以来的天数,这就是单元格中所代表的数字。

理想情况下,如果用户手动在Excel中打开电子表格并输入Excel认为是日期的单元格值,则我希望使用与Excel为其分配的默认日期格式相同的默认日期格式显示电子表格单元格。

回答:

http://poi.apache.org/spreadsheet/quick-

guide.html#CreateDateCells

CellStyle cellStyle = wb.createCellStyle();

CreationHelper createHelper = wb.getCreationHelper();

cellStyle.setDataFormat(

createHelper.createDataFormat().getFormat("m/d/yy h:mm"));

cell = row.createCell(1);

cell.setCellValue(new Date());

cell.setCellStyle(cellStyle);

以上是 如何将单元格值设置为“日期”并应用默认的Excel日期格式? 的全部内容, 来源链接: utcz.com/qa/416104.html

回到顶部