如何从Excel中使用java获取单元格,无论单元格是否包含string或数字值?

这是我的代码:

long tin=0; tin = (long)row.getCell(10).getNumericCellValue(); 

Excel的锡值可能包含string或只有数字值..如果锡值是数字我能够获取数据..如果锡值是string是错误的。

您可以使用Cell#getCellTypeEnum()检查单元格的types。 可能的返回值是:

  • _NONE – 未知types,用于表示初始化之前的状态或缺less具体types。
  • 空白 – 空白单元格types
  • BOOLEAN – 布尔单元格types
  • 错误 – 单元格types错误
  • 公式 – 公式单元格types
  • NUMERIC – 数字单元格types(整数,分数,date)
  • STRING – string(文本)单元格types

换句话说,你应该尝试下面的脚手架:

 tin = row.getCell(10).getCellTypeEnum().equals(CellType.NUMERIC) ? (long)row.getCell(10).getNumericCellValue() : Long.parseLong(row.getCell(10).getStringCellValue());