HSSF POI:如何确定单元格中的数据是否为日期类型?

13

目前我的代码是这样的:

bean.setREPO_DATE(row.getCell(16).getDateCellValue());

如果单元格在Excel中格式化为日期,则它能正常工作。

但是,它还会将一些整数或长整数(如1234或5699)转换为日期。我知道这背后的原因。

然而,在执行上述行之前,我想应用一个检查。类似这样的东西:

if(row.getCell(16).isOfDateFormat){
bean.setREPO_DATE(row.getCell(16).getDateCellValue());
} 

请指导我。

提前致谢!


1
可能是XSSF POI是单元格日期的重复问题。 - Jayan
非常抱歉,我在发布问题之前已经搜索过了。 - Abhishek Singh
@ Abhishek Singh:虽然那个答案中包含了 API,但它并不完全是一个重复的问题。我已经撤回了我的关闭投票。 - Jayan
1个回答

26

试试这个:

使用import org.apache.poi.ss.usermodel.DateUtil;

if(DateUtil.isCellDateFormatted(cell))
   {
       cell.getDateCellValue();
   }

1
谢谢,它对我有用。您能告诉我如何检查单元格中的值是百分比还是普通数字吗? - user3217843
3
java.lang.IllegalStateException: 如果单元格类型为字符串,则无法从字符串单元格获取数字值 - Se Song
3
在检查日期之前,您需要检查它是否为数字。判断一个数字是日期还是数字的唯一方法是查看其样式。但是首先必须确保它是一个数字。来自我的类似问题的答案。作者:RealSkeptic。(stackoverflow.com/questions/60155480/…)。有人可以编辑此内容,使“问题”一词指向我的问题。@SeSong - Kostas Thanasis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接