excel - Apache POI:如何将单元格公式设置为另一个工作表的名称?
问题描述
我做错了吗,还是这是 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);
但是我需要:
解决方案
抱歉,是 3.10.x 中的一个错误。适用于 3.17。
留下问题。也许这个例子对某人有用。
推荐阅读
- angular - Angular 将 html 模板作为字符串注入
- c# - Entity Framework Core - 在 Include 中调用填充扩展方法
- python - 命名实体识别无法显示列表
- shell - 这个循环是如何工作的?
- polymer - 无法访问 WCT 中 Shadow Root 内的元素
- java - 根据给定的json创建地图
- mysql - 在 sql 函数中为 customerID 分配正确的值
- typescript - 打字稿:需要至少一个参数时使用扩展运算符
- firebase - Firebase 删除控制台上的测试设备
- python - 如何设置数据过期时间使用pymongo