我做错了吗,或者这是POI的错误/限制?
我得到FormulaParseException: Cell reference expected after sheet name at index 8
。
它在没有工作表限定符的情况下有效,但是如果复制粘贴到另一张工作表,则该公式将不起作用。
我需要工作表作用域的名称,因为多个工作表定义了相同的名称。
File file = new File(System.getProperty("user.home"), "Desktop/Test.xlsx");
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Name name = workbook.createName();
name.setNameName("NameForA1");
name.setSheetIndex(workbook.getSheetIndex(sheet));
name.setRefersToFormula("'Sheet1'!$A$1:$A$1");
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("This is A1");
Cell b1 = row.createCell(1);
// b1.setCellFormula("'Sheet1'!NameForA1"); // throws exception
b1.setCellFormula("Sheet1!NameForA1"); // throws exception
// b1.setCellFormula("NameForA1"); // works
workbook.write(new FileOutputStream(file));
Desktop.getDesktop().open(file);
但是我需要:
答案 0 :(得分:1)
抱歉,是3.10.x中的错误。在3.17版本中可用。
留下问题。也许这个例子对某人有用。