Java读取excel文件IllegalStateException-Cannot get a text value from a numeric cell

Java读取excel文件IllegalStateException-Cannot get a text value from a numeric cell

Scroll Down

Java读取excel文件IllegalStateException:Cannot get a text value from a numeric cell

读取excel文件时候报错

原因是excel表格中有数字,不能被正确读取为String类型

读取代码如下

    @Test
    public void demo2(){
        try {
            XSSFWorkbook workbook = new XSSFWorkbook("D:\\test.xlsx");
            XSSFSheet sheet = workbook.getSheetAt(0);
            //获取当前工作表中的最后一行,行号从0开始
            int lastRowNum = sheet.getLastRowNum();
            //遍历所有行
            for (int i = 0; i < lastRowNum; i++) {
                //根据行号获取行对象
                XSSFRow row = sheet.getRow(i);
                //获取最后一个单元格的索引号,索引从0开始
                short lastCellNum = row.getLastCellNum();
                //遍历每一行上的每一个单元格
                for (short j=0;j<lastCellNum;j++){
                    String value = row.getCell(j).getStringCellValue();
                    System.out.println(value);
                }
            }
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

其中执行String value = row.getCell(j).getStringCellValue();时候报错。

添加以下代码

//添加此代码,设置以String读取单元格
row.getCell(j).setCellType(Cell.CELL_TYPE_STRING);

这样就可以正常读取数字内容了