java - 使用 POI HSSF API 从 excel 单元格中读取日期值

标签 java excel apache-poi poi-hssf

我正在使用 POI HSSF API 在 Java 中进行 excel 操作。我的一个 Excel 单元格中有一个日期值“2009 年 8 月 1 日”,当我尝试使用 HSSF API 读取该值时,它会将单元格类型检测为数字并返回我的日期的“双倍”值。请看下面的示例代码:

cell = row.getCell(); // date in the cell '8/1/2009'
switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING:
    cellValue = cell.getRichStringCellValue().getString();
    break;
case HSSFCell.CELL_TYPE_NUMERIC:
    cellValue = new Double(cell.getNumericCellValue()).toString();
    break;
default:
}

Cell.getCellType() 返回 NUMERIC_TYPE,因此此代码将日期转换为 double ! :(

有什么方法可以读取 HSSF POI 中的日期!?

最佳答案

你可以看看:

HSSFDateUtil.isCellDateFormatted()

有关 HSSFDateUtil 的更多详细信息,请参阅 POI Horrible Spreadsheet Format API:

http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFDateUtil.html

它还提供了一些帮助方法来返回 Excel getExcelDate() 和 Java 日期 getJavaDate()。不过,您需要对不同的日期格式有所警惕...

关于java - 使用 POI HSSF API 从 excel 单元格中读取日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/861877/

相关文章:

java - 如何获取多个可运行对象共有的变量的最小值?

JAVA,在框架中以增加的字体大小显示短语

Excel VBA,验证字段是否大于零并将此行添加到另一个工作表

eclipse - 使用 Java 11 在 Eclipse 中混合模块化和非模块化开发

通过 ssh 在远程服务器上运行多个不相关命令的 Java 库

在 GridLayout 中创建 10x10 的 JPanel 网格时,Java Swing 奇怪的 Gui 输出

vba - Excel循环遍历行并将单元格值复制到另一个工作表

excel - Excel 公式中的 -- 有何作用?

java - 设置Excel工作表背景图片

java - 如何在 while 循环中增加行计数器变量?