我正在使用Apache POI 3.17来读取一些excel数据 . 我的第二列(索引为1因为0索引)是空的,我希望能够读取它,但无法获取我的代码将单元格读取为空 . 我有这个不起作用:
Cell c = row.getCell(1, Row.RETURN_BLANK_AS_NULL); if (c == null) { // do whatever }
但是第二个参数不能被接受 . 我得到“RETURN_BLANK_AS_NULL无法解析或者不是字段”
自POI-3.15-beta2起, Row 类中的常量已被弃用,标记为从POI-3.17开始删除 . This diff显示2016年6月这些常量被弃用的时间 . 它们在3.17中被删除 .
Row
在3.17之前,枚举Row.MissingCellPolicy已被定义为替换 . 如果您使用的是3.17,则必须使用该枚举;它被定义为 Row 接口的成员 . 尝试
Cell c = row.getCell(1, Row.MissingCellPolicy.RETURN_BLANK_AS_NULL);
尝试使用 org.apache.poi.ss.usermodel.DataFormatter .
org.apache.poi.ss.usermodel.DataFormatter
DataFormatter formatter = new DataFormatter(); Workbook workbook = WorkbookFactory.create(new File("yourFileName.xls")); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for(Cell cell : row) { String text = formatter.formatCellValue(cell); System.out.println(text); } } workbook.close();
2 回答
自POI-3.15-beta2起,
Row
类中的常量已被弃用,标记为从POI-3.17开始删除 . This diff显示2016年6月这些常量被弃用的时间 . 它们在3.17中被删除 .在3.17之前,枚举Row.MissingCellPolicy已被定义为替换 . 如果您使用的是3.17,则必须使用该枚举;它被定义为
Row
接口的成员 . 尝试尝试使用
org.apache.poi.ss.usermodel.DataFormatter
.