我尝试分析具有其他文件链接的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
一个两步过程。首先,从Pxg获取外部工作簿编号。接下来,从工作簿中获取该工作簿编号的ExternalLinks表,并注意一一对应。(外部工作簿0实际上是当前工作簿,因此外部工作簿1对应于外部链接0)。最后,获取该链接的文件名
因此,您的代码应类似于:
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();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句