gpt4 book ai didi

java - Apache Poi,如何获取链接的工作簿?

转载 作者:搜寻专家 更新时间:2023-11-01 03:00:13 24 4
gpt4 key购买 nike

我尝试分析带有其他文件链接的 excel 文件,我想知道文件名和路径。为此,我使用的是 apache poi 3.14。

我为 Ref3DPtg 对象弄明白了,但对于 Ref3DPxg 我不知道该怎么做。我只能访问单元格地址和工作表名称。

有人知道怎么做吗?

代码:

...
if(ptg instanceof Ref3DPxg){
cellAddress = ptg.format2DRefAsString();
sheetName = ptg.getSheetName();
workbookName = ???;
} else if(ptg instanceof Ref3DPtg) {
// by Ref3DPtg is no problem
}

最佳答案

由于 XLSX 文件格式存储外部引用的方式,实际上不是 =[Other.xlsx]Sheet1!A1 而实际上是 =[23]Sheet1!A1,这是一个两步过程。一、get the external workbook number from the Pxg .接下来,来自Workbook get ExternalLinks table对于该工作簿编号,请注意差一。 (External Workbook 0 实际上是当前工作簿,所以External Workbook 1 对应External Link 0)。最后,获取 filename for that link

所以,你的代码应该是这样的:

if(ptg instanceof Ref3DPxg){
Ref3DPxg pxg = (Ref3DPxg)ptg;
int extWB = pxg.getExternalWorkbookNumber();
int extLink = extWB-1;
ExternalLinksTable links = wb.getExternalLinksTable().get(extLink);
String filename = links.getLinkedFileName();
}

关于java - Apache Poi,如何获取链接的工作簿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36990272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com