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

标签 java date apache-poi

一段时间以来,我一直在使用 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/

相关文章:

java - 官方(且丑陋的)顺序组合的替代方案

php - 在 PHP 中将日期插入 MySQL

java - 在 Java 中创建 Excel 图表

java - 当客户的帐户进行存款交易时,我是否应该使用观察者模式通知客户对象?

java - 什么是 MyClass.class?

java - 如何禁用ActiveMQ中的InactivityMonitor日志?

java - 如何计算我的类(class)中的年份差异?

python - 根据生日对姓名和日期列表进行排序

java - 如何在java中转换em破折号

java - 需要使用mockito测试apache poi excel