关于 npoi 的 DateUtil.IsCellDateFormatted(cell) 为true,取cell.DateCellValue却报异常的问题

NPOI中数字和日期都是NUMERIC类型的,这里对其进行判断是否是日期类型

所以 当 DateUtil.IsCellDateFormatted 为 true 时,理论是应该可以取到  cell.DateCellValue

但实际上,cell.DateCellValue 可能会报异常,而取 cell.NumericCellValue 却是正常的,

HSSFWorkbook 是excel2007以前,主要是2003的版本  即 xls, 主要是最大行数只支持到 65535 好

XSSFWorkbook 是excel2007以后的版本,即 xlsx ,支持的行数是 xls 的16倍左右

我的测试,不管是xls,或xlsx,它们对日期格式的解析,还是有问题的

当我  DateUtil.IsCellDateFormatted(cell)   为 true 后,去取 cell.DateCellValue 时,它会报 空异常 

“DateUtil.GetJavaDate(cell.NumericCellValue)”引发了类型“System.NullReferenceException”的异常

(经常是在第一次调用后,的第二次调用时,) (测试 在  netframework 452 web 环境 )

 

经测试 是npoi 使用的 2.5.1 为弃用版本,更新到 2.5.6 即可

posted @ 2023-10-19 10:59  以函  阅读(301)  评论(0编辑  收藏  举报