从Excel单元格读取日期值作为字符串

我正在使用Apache

POI库读取Excel文件。我在读取密码单元时被卡住了。如果用户在密码单元格中输入日期作为密码,即16/05/2012。我正在将此值读取为“

41045”,而该值应为“ 16/05/2012”。这是我的代码:

cell = row.getCell(); // date in the cell password '16/05/2012'

switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING:

cellValue = cell.getRichStringCellValue().getString();

break;

case HSSFCell.CELL_TYPE_NUMERIC:

if(cellCount == TEMPLATE_PASSWORD) {// if cell is password

cell.setCellType(Cell.CELL_TYPE_STRING);

cellValue = cell.getRichStringCellValue().getString(); // value read is 41045 and not "16/05/2012"

}

break;

default:

}

有人可以帮忙吗?

谢谢。

回答:

您在POI中寻找的类是DataFormatter

当Excel写入文件时,某些单元格将存储为文字字符串,而另一些单元格将存储为数字(包括日期)。对于后者,代表该单元格的浮点值存储在文件中,因此当您向POI询问其实际具有的单元格值时。

但是有时候,尤其是在进行文本提取时(但并非总是如此),您希望使单元格值看起来像在Excel中一样。并非总是能够完全以String形式获得该字符串(例如,非全空格填充),但是DataFormatter类会让您接近。

另请注意,在Excel中,自〜1900以来,日期存储为浮点数,这就是为什么看到数字而不是日期的原因。使用DataFormatter(或类似格式)将其呈现为日期

以上是 从Excel单元格读取日期值作为字符串 的全部内容, 来源链接: utcz.com/qa/414562.html

回到顶部