当前位置: 首页 > 面试题库 >

使用POI HSSF API从Excel单元读取日期值

姬奇思
2023-03-14
问题内容

我将POI HSSF API用于Java中的excel操作。我在一个excel单元格中有一个日期值“ 8/1/2009”,当我尝试使用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,因此此代码将日期转换为两倍!:(

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


问题答案:

您可以看一下:

HSSFDateUtil.isCellDateFormatted()

有关HSSFDateUtil的更多详细信息,请参见POI可怕的电子表格格式API:

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

这也提供了一些用于返回Excel
getExcelDate()和Java日期的辅助方法getJavaDate()。不过,您需要警惕不同的日期格式…



 类似资料:
  • 问题内容: 我正在使用Apache POI库读取Excel文件。我在读取密码单元时被卡住了。如果用户在密码单元格中输入日期作为密码,即16/05/2012。我正在将此值读取为“ 41045”,而该值应为“ 16/05/2012”。这是我的代码: 有人可以帮忙吗? 谢谢。 问题答案: 您在POI中寻找的类是DataFormatter 当Excel写入文件时,某些单元格将存储为文字字符串,而另一些单元

  • 我有一个Java代码显示的内容的excel表。现在,当我处理数值/字符串/布尔数据时,它总是给出正确的结果。不同的是,为了测试我的代码,我在Excel中做了很少的改动,并添加了一个日期值(例如4-SEP-09)。在运行我的代码时,它返回了不想要的结果。代码和O/P如下所示。如何从excel表中读取和显示日期值?我在用阿帕奇POI。我可以执行类似的操作,检查单元格值是否为date,或者是否使用?这是

  • 我正在尝试使用Apache POI来读取旧的(2007年之前和XLS)Excel文件。我的程序走到行的末尾并进行迭代,直到找到非null或非空的内容。然后它迭代几次并获取这些细胞。该程序可以很好地读取Office 2010中的XLSX和XLS文件。 我收到以下错误消息: 排队的时候: 根据代码: 其中是文档中最后一个不为空或null的单元格。当我尝试打印第一个不为空或null的单元格时,它不会打印

  • 我正在尝试使用apache poi库来读取excel。我想将日期字段转换为字符串值。因此,我使用了以下代码: 我的约会方式很奇怪

  • 问题内容: 我有包含多个工作表的Excel文件,每个工作表看起来都像这样(但更长): 第一列实际上是四个垂直合并的单元格。 当我使用pandas.read_excel阅读此内容时,我得到一个看起来像这样的DataFrame: 如何让Pandas理解合并的单元格,或者快速方便地删除NaN并按适当的值分组?(一种方法是重置索引,逐步查找值并将NaN替换为值,传入天数列表,然后将索引设置为该列。但是似乎

  • 我有一个带有sheet1 excel文件,该文件的第2行和第10列有一个我需要读取的值。这是我的代码。 获取了cell对象Excel.Range后,我不知道如何读取该单元格的内容。我试着把它转换成数组并在它上面循环,我试着转换成字符串数组等等,我确信这是非常简单的。有没有直接的方法只得到一个字符串的单元格值?