java poi 设置时间空间_关于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为其分配的默认日期格式相同的默认日期格式显示电子表格单元格。

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);

谢谢忍者,这对我有用。对需要这样做的其他人发表评论。有一个名为BuiltinFormats的POI类,列出了Excel知道的所有标准格式(而不仅仅是日期格式)。我坚持使用其中一个作为上面代码段中所示的getFormat()方法的参数。

重要的部分在链接的注释中:我们将第二个单元格设置为日期(和时间)。在工作簿中创建新的单元格样式很重要,否则您最终可能会修改内置样式并不仅影响此单元格,而且影响其他单元格。

谢谢,@ ninja。您知道为什么需要getCreationHelper()吗?我现在正在与Mu

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值