从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