尝试从 Excel 文件访问布尔值时出现错误。
final Cell enabledCell = row.getCell(6);
enabledCell.getBooleanCellValue() // this throws an exception
java.lang.IllegalStateException: Cannot get a BOOLEAN value from a STRING cell
在 Excel 文件中,我刚刚在第六列中写入了“TRUE”和“FALSE”作为值,但不知何故它们被视为字符串而不是布尔值。
本地化 Excel 应用程序中的布尔值也已本地化。例如,在我的德语 Excel 中,布尔值是
WAHR
和 FALSCH
。如果我使用德语 Excel GUI 将 TRUE
或 FALSE
放入单元格中,那么这不是 布尔值,而是文本字符串。
所以在获取单元格值之前总是需要检查CellType
。或者使用
DataFormatter
始终获取独立于单元格类型的字符串值。两者均显示在
繁忙的 HSSF 和 XSSF 功能开发人员指南 -> 获取单元格内容中。
此外,您可能会得到错误的单元格。在Row.getCell 中,int cellnum
是从 0 开始的。列
A
是
cellnum
0。因此
cellnum
6 是列
G
,这是第 7 列而不是第 6 列。但这是次要的。主要是在获取单元格值之前需要检查
CellType
或使用
DataFormatter
。