我正在通过Java生成Excel文件。我需要在“概述”表中引用“摘要”表。首先,我将摘要表名称声明为“ RtSummary.1-PLAN1”。然后,我在概述表中处理单元格。但是,我收到错误消息:
Exception in thread "main" org.apache.poi.ss.formula.FormulaParseException: Specified named range 'RtSummary.1' does not exist in the current workbook.
我打印出工作表名称。它打印出的正是我所期望的。 (它打印“ RtSummary.1-PLAN1” ,而不是“ RtSummary.1” )。 然后,我尝试将工作表名称从“ RtSummary.1-PLAN1”更改为“ test”。我没有再收到这样的错误。
我很困惑我的工作表名称出了什么问题,从而导致这种错误。我的代码如下:
//cell 3 (total orders) will be filled later
String summarySheetName="RtSummary."+snapshots[i].trim()+Integer.toString(i+1);
String detailSheetName="RtDetail."+snapshots[i]+(i+1);
Row orderRow;
//first comparison table content
int rowOffset=15+snapshots.length;
curRow=overviewSheet.createRow(rowOffset+i);
orderRow=curRow;
curCell=curRow.createCell(1);
curCell.setCellStyle(lrBarStyle);
curCell.setCellValue(snapshots[i]);
curCell=curRow.createCell(2);
curCell.setCellStyle(lrBarStyle);
if(sameDay)
curCell.setCellValue(dateSDF.format(startDate.getTime()));
else
curCell.setCellValue(dateSDF.format(startDate.getTime())+"-"+dateSDF.format(endDate.getTime()));
curCell=curRow.createCell(4);
curCell.setCellStyle(lrBarStyle);
System.out.println(summarySheetName);
curCell.setCellFormula(summarySheetName+"!N"+(routes.length+2));
System.out.println("0k");