【问题标题】:Apache POI Date to String issueApache POI 日期到字符串问题
【发布时间】:2014-11-07 04:07:40
【问题描述】:

我正在使用 apache POI 读取 excel。我的 excel 文件中有一个日期字段,日期格式为“MM/dd/yy”。我想将所有单元格读取为字符串。所以我使用“cell.setCellType(Cell.CELL_TYPE_STRING);”将所有单元格类型设置为字符串。当此单元格转换为字符串时,我看到的日期字段值为 41886。如果我遗漏任何内容,请告诉我。

谢谢。

【问题讨论】:

    标签: java string excel date apache-poi


    【解决方案1】:

    字符串41886 测量相对于Excel epoch 的时间。相反,将类型保留为Cell.CELL_TYPE_NUMERIC 并使用DateUtil,如here 所示。

    if (DateUtil.isCellDateFormatted(cell)) {
        System.out.print(cell.getDateCellValue());
    }
    

    【讨论】:

      【解决方案2】:

      使用方法.formatCellValue(cell)将单元格的格式化值作为字符串返回该方法可以在DataFormatter类中找到

      文档中的更多信息:

      DateFormatter (POI Documentations)

      【讨论】:

        【解决方案3】:

        Excel 中的日期存储为浮点值,表示自某个纪元日期(我认为是 1900 年)以来的天数(和天数的小数)。您需要将日期值读取为日期并在 Java 中进行转换。

        【讨论】:

          猜你喜欢
          • 2017-04-27
          • 1970-01-01
          • 1970-01-01
          • 2011-10-25
          • 1970-01-01
          • 1970-01-01
          • 2021-02-28
          • 1970-01-01
          相关资源
          最近更新 更多