Apache Poi、リンクされたワークブックを入手する方法は?

MichaD

他のファイルへのリンクを含むExcelファイルを分析しようとしていますが、ファイル名とパスを知りたいです。そのために私はapachepoi3.14を使用しています。

Ref3DPtgオブジェクトについては理解しましたが、Ref3DPxgについてはその方法がわかりません。セルアドレスとシート名にしかアクセスできません。

誰かがそれを行う方法を知っていますか?

コード:

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

XLSXファイル形式が外部参照を保存する方法のため、実際にはそうではありませんが=[Other.xlsx]Sheet1!A1、実際=[23]Sheet1!A1には2段階のプロセスです。まず、Pxgから外部ワークブック番号を取得します。次に、ワークブックから、そのワークブック番号のExternalLinksテーブル取得し1つずつメモします。(外部ワークブック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

関連記事

Related 関連記事

ホットタグ

アーカイブ