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

Java 如何使用apache poi在excel中重命名名称,java,apache-poi,Java,Apache Poi,如何使用ApachePOI更改名称的引用(引用一组单元格)?我已经看过API并找到了一些函数,比如getNameName(),我不确定是否必须使用它,或者应该如何使用它 假设我有一个名称“学生的名字”,它指的是单元$a$2:$a$10,我想在java中将这个名称改为指的是单元$a$2:$a$20。有人知道怎么做吗 编辑:我查看了文档并试图提出一个示例代码,但即使这样也不起作用 代码: InputStream inp = new FileInputStream("test.xlsx");

如何使用ApachePOI更改名称的引用(引用一组单元格)?我已经看过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();
        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();

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

代码:

 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();
        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();

你能和我们分享你的代码吗?您应该提供。@EmreSavcı我以前从未使用过apache poi,因此我不确定要使用哪些函数或如何设计程序的逻辑。我还没有为这个特定的问题编写任何代码。如果这导致了问题,我真的很抱歉。所以你应该看看文档和示例。同时阅读。@EmreSavcı我查看了文档,试图找出一个代码,说明我想如何做。但是使用.getNameName似乎不起作用,我也不知道为什么。干杯