从 Excel Apache POI 检索值

Retrieving Values From Excel Apache POI

我正在尝试从 excel 中的每个 sheet 中检索特定值。 该代码适用于测试 excel 工作簿,但不适用于我试图检索的 excel 文件。

遇到的错误是,

"Exception in thread "AWT-EventQueue-0" org.apache.poi.ss.formula.FormulaParseException: Specified named range 'Table156723451819202122232434567891011121314151619216710111213162024254567101718193456781112131623242528234789101314151619202128910111215234567891011121314161718192021222324252627282930312345678910111213141516171819202122232425262728293032234567891011140' does not exist in the current workbook."

目标 excel 本书只有 sheet 1 个月。(1 月 1 日,2 月 1 日...) 我定位的单元格如下所示:

目标单元格公式如下:=SUM(D23:D24)

以下是我的代码:

for(int i=0; i<=30; i++){
            Sheet sheet = wb.getSheetAt(i);
            FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
            CellReference cellReference = new CellReference("D25"); 
            //CellReference cellReference = new CellReference("A4"); 
            Row row = sheet.getRow(cellReference.getRow());
            Cell cell = row.getCell(cellReference.getCol()); 

            //System.out.println("i:"+row.getCell(cellReference.getCol()));
            //CellValue cellValue = evaluator.evaluate(cell);
            CellValue cellValue = evaluator.evaluate(cell);

            switch (cellValue.getCellType()) {
                case Cell.CELL_TYPE_BOOLEAN:
                    System.out.println(cellValue.getBooleanValue());
                    break;
                case Cell.CELL_TYPE_NUMERIC:
                    System.out.println(cellValue.getNumberValue());
                    break;
                case Cell.CELL_TYPE_STRING:
                    System.out.println(cellValue.getStringValue());
                    break;
                case Cell.CELL_TYPE_BLANK:
                    break;
                case Cell.CELL_TYPE_ERROR:
                    break;

                // CELL_TYPE_FORMULA will never happen
                case Cell.CELL_TYPE_FORMULA: 
                    break;
            }   

我曾尝试在我的测试中使用相同的公式 excel,效果很好。 请为此提供任何指导,因为我坚持了很长时间。非常感谢!

我想通了。

使用 .XLS 格式而不是 .XLSX 解决了这个问题。

干杯!快乐编码。