java - POI - 如何将单元格值设置为Date并应用默认的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日以来的天数,这就是单元格中的数字所代表的数字。
问题:我可以在POI中使用哪些API调用来告诉它我需要将默认日期格式应用于我的日期单元格?
理想情况下,如果用户在Excel中手动打开电子表格并键入Excel识别为日期的单元格值,我希望电子表格单元格显示的Excel默认日期格式与Excel分配的格式相同。
6个解决方案
145 votes
[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);
ninja answered 2019-09-10T03:53:03Z
21 votes
要设置为默认Excel类型日期(默认为操作系统级别区域设置/ - >例如,如果您在Excel的单