如何使用apache poi重命名excel中的名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用apache poi重命名excel中的名称相关的知识,希望对你有一定的参考价值。

如何使用Apache poi更改名称引用(引用一组单元格)?我已经查看了API并找到了一些函数,例如getNameName(),我不确定我是否必须使用它或我应该如何使用它。

假设我有一个名称“学生姓名”,指的是单元格$ A $ 2:$ A $ 10,我想在java中更改此名称以引用单元格$ A $ 2:$ A $ 20。有谁知道如何做到这一点?

编辑:我查看了文档,并尝试提供示例代码,但即使这样也行不通。

码:

 InputStream inp = new FileInputStream("test.xlsx");
        Workbook wb = WorkbookFactory.create(inp);
        Sheet sheet = wb.getSheetAt(0);
        Name name;
        name = wb.createName();
        name = name.getNameName("NameOFStudents");
        name.setRefersToFormula("=Sheet1!$A$1:$A$20");
        FileOutputStream fileout = new FileOutputStream("test2..xlsx");
        wb.write(fileout);
        fileout.close();
答案

所以我终于想出了怎么做。您将工作簿变量与函数.getName()一起使用以获取所需的名称并将其分配给Name变量,然后使用.setRefersToFormula()更改引用

码:

        InputStream inp = new FileInputStream("test.xlsx");
        Workbook wb = WorkbookFactory.create(inp);
        Sheet sheet = wb.getSheetAt(0);
        Name name;
        name = wb.getName("NameOFStudents");
        name.setRefersToFormula("Sheet1!$A$1:$A$20");
        FileOutputStream fileout = new FileOutputStream("test2..xlsx");
        wb.write(fileout);
        fileout.close();

以上是关于如何使用apache poi重命名excel中的名称的主要内容,如果未能解决你的问题,请参考以下文章

多个线程(并行测试用例)如何使用Java(Selenium)设置中的Apache POI同时访问同一个excel文件?

如何使用JAVA中的apache POI在Excel中设置/取消设置列过滤器的值?

如何强制Excel使用Apache POI以西班牙语语言环境显示值

如何使用 apache poi 确定合并单元格中的行数?

如何使用 Excel 中的 VBA 重命名访问表?

如何使用 Python 中的 API 重命名 Google Sheets 电子表格中的(工作)表?