Apache POI通过XSSF阅读器读取了错误的Excel工作表日期格式

时间:2018-09-29 09:14:10

标签: java excel apache-poi

我想读取Excel工作表中单元格的特定值。当前我的代码给出的是General值,而不是Cell的Custom值。
举个例子: 现在,

  • 我在Excel工作表Custom(单元格类型)-> 01/10/2250中给出输入。
  • 输出正在转换为单元格的通用值-> 128110 (单元格的格式为“常规”,这很重要,因为正是这种特定情况导致了我们的错误)。

由于工作簿的内存问题,我们正在使用XSSF阅读器,XMLReader和现在的工作簿。 (我们在we for workbook上看到了很多答案,而不是XSSF)

测试用例

  • 输入-> 01/10/2250
  • 所需的输出-> 01/10/2250
  • 实际输出----> 128110

  • 输入-> 12-25-2250
  • 所需的输出-> 12-25-2250
  • 实际输出----> 128110

  • 输入-> 2250-25-12
  • 所需的输出-> 2250-25-12
  • 实际输出----> 128195

请注意所有带有连字符(-)和斜杠(/)的输入模式。

强文本 这是代码---->

button.titleLabel?.baselineAdjustment = UIBaselineAdjustment.alignCenters

1 个答案:

答案 0 :(得分:0)

还有另一个Apache POI示例(XLSX2CSV),它使您可以流式处理输入的xlsx,但可以访问格式化的单元格数据。您的代码基于另一个示例,该示例从xlsx文件读取原始XML(并且原始XML具有数字格式的日期)。

这基于该示例: https://github.com/pjfanning/poi-shared-strings-sample/blob/master/src/main/java/com/github/pjfanning/poi/sample/XLSX2CSV.java