gpt4 book ai didi

java - 如何使用 Apache POI 读取具有日期的 Excel 单元格?

转载 作者:行者123 更新时间:2023-12-04 20:48:32 26 4
gpt4 key购买 nike

我正在使用 Apache POI 3.6,我想读取一个日期如下的 excel 文件 8/23/1991 .

 switch (cell.getCellType()) {

...
...

case HSSFCell.CELL_TYPE_NUMERIC:
value = "NUMERIC value=" + cell.getNumericCellValue();
break;

...

}

但它采用数值类型并返回这样的值 33473.0 .

我试过使用数字单元格类型,虽然没有运气。
dbltemp=row.getCell(c, Row.CREATE_NULL_AS_BLANK).getNumericCellValue();

if (c == 6 || c == 9) {
strTemp= new String(dbltemp.toString().trim());

long tempDate = Long.parseLong(strTemp);
Date date = new Date(tempDate);

strVal = date.toString();
}

我该如何解决我的问题?

最佳答案

注意: HSSFDateUtil 已弃用

如果您知道哪个单元格,即每行中的列位置 0 将是一个日期,您可以选择row.getCell(0).getDateCellValue()直接地。
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html#getDateCellValue()

更新:这是一个示例 - 您可以在上面的 switch case 代码中应用它。我正在检查并打印数字和日期值。在这种情况下,我的工作表中的第一列有日期,因此我使用 row.getCell(0)。

您可以使用 if (HSSFDateUtil.isCellDateFormatted ..代码块直接在您的开关盒中。

if (row.getCell(0).getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
System.out.println ("Row No.: " + row.getRowNum ()+ " " +
row.getCell(0).getNumericCellValue());

if (HSSFDateUtil.isCellDateFormatted(row.getCell(0))) {
System.out.println ("Row No.: " + row.getRowNum ()+ " " +
row.getCell(0).getDateCellValue());
}
}

输出是
Row No.: 0 39281.0
Row No.: 0 Wed Jul 18 00:00:00 IST 2007
Row No.: 1 39491.0
Row No.: 1 Wed Feb 13 00:00:00 IST 2008
Row No.: 2 39311.0
Row No.: 2 Fri Aug 17 00:00:00 IST 2007

关于java - 如何使用 Apache POI 读取具有日期的 Excel 单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72129089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com