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

MichaD

我尝试分析具有其他文件链接的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Apache POI工作簿的默认样式

如何迭代工作簿中的工作表 - Scala - spoiwo/poi.apache.org

如何使用Java中的Apache POI将元数据写入Excel工作簿

如何解决Apache POI“工作簿”可能尚未初始化

如何将Apache POI工作簿转换为Spark数据框?

为什么我不能在Apache的POI一个工作簿链接到另一个?

无法设置填充颜色Apache POI Excel工作簿

Apache POI-缓存工作簿是重用的最佳方法吗?

Apache POI花费大量时间写入工作簿

apache poi:无法重新打开工作簿:InvalidOperationException

apache POI在Excel工作簿中添加水印

程序停止尝试读取Excel工作簿(Apache POI)

创建工作簿Apache POI的通用方法

如何使用apache POI和PrimeFaces向现有的Excel工作簿中添加新工作表

如何从apache POI XWPFDocument获取图纸?

如何获取 SignatureLines excel apache poi

如何使用Apache POI获取Java中Excel工作表各行的最后一列值

如何使用Apache POI 3.6在Excel工作表中获取超过255列

Apache POI如何将工作簿样式应用于所有数据透视表。我如何排除床单?

使用Apache POI在Excel工作簿之间复制单元格

资源泄漏:使用Apache.POI XSSFWorkbook时永远不会关闭工作簿警告

apache poi将一种样式应用于不同的工作簿

为什么在使用Apache POI读取Excel文件之前需要创建工作簿?

如何删除,而不清除工作表中的行?Apache POI

Apache POI-如何使用选项保护工作表?

如何使用Apache POI选择并加粗整个工作表

如何使Apache POI和JAXB一起工作?

Apache Poi-在现有工作簿中有错误的单元格中的值不会重新计算

如何使用apache poi获取子形状的绝对位置