我正在尝试使用 apache poi 插件从 Excel 文件中检索命名范围。
代码片段如下所示。
我发现调用 WorkbookFactory.create(excelFile);
花费了很长时间 - 大约 3 秒。
是否有更快的方法来获取与 Excel 工作表关联的所有命名范围?
File excelFile = new File(filePath);
Workbook workbook = WorkbookFactory.create(excelFile);
int n = workbook.getNumberOfNames();
for (int i = 0; i < n; i++)
{
Name nameObject = workbook.getNameAt(i);
String formulaName = nameObject.getRefersToFormula();
System.out.println("Named Range is :"+formulaName);
}
最佳答案
我刚刚向 POI 提交了一个补丁,它修复了可怕的 WorkbookFactory.create() 执行时间,您可能想在这里查看它:
https://issues.apache.org/bugzilla/show_bug.cgi?id=51585
构建 POI 并不难 - 只需将补丁应用到 vanilla 3.9 版本即可。
关于java - WorkbookFactory.create() 的 Apache Poi 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18957278/