一段时间以来,我一直在使用 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 为其分配的默认日期格式显示。
p>最佳答案
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);
关于java - 如何将单元格值设置为日期并应用默认 Excel 日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5794659/