読む前に、指定されたシート(名前または番号)がファイル(xlsまたはxlsx)に存在するかどうかを確認したいと思います。イベントAPIを使用してメモリフットプリントの問題に対処しているため、org.apache.poi.ss.usermodel.Workbookオブジェクトを使用したくありません。
JDK7でApachePOI3.7を使用しています。誰か助けてくれませんか?
ありがとう、
パラグ
読む前に、指定されたシート(名前または番号)がファイル(xlsまたはxlsx)に存在するかどうかを確認したいと思います。イベントAPIを使用してメモリフットプリントの問題に対処しているため、org.apache.poi.ss.usermodel.Workbookオブジェクトを使用したくありません。
JDK7でApachePOI3.7を使用しています。誰か助けてくれませんか?
ありがとう、
パラグ
UserModelコードを使用して確認する方法は、2つの形式で同じです。
ただし、EventAPIについて質問しました。これらははるかに低いレベルであるため、2つの形式の違いは、それらを非表示にするものがないため、ユーザーが処理する必要があります。(簡単な生活が必要な場合は、サーバー用にもう少しメモリを購入して、UserModelを使い続けてください!)
.xlsファイル形式(HSSF)の場合、シートの詳細はファイルの上部近くに保存されます。ファイルの処理を開始し、BoundSheetRecord(sid = 0x0085)が通過するのを待ちます。これらすべてを見ると、シートがファイルに含まれているかどうかがわかります。そうである場合は、通常どおりに処理します。そうでない場合は、中止します。
.xlsxファイル形式(XSSF)の場合は、ファイルを開いてブックの部分を取得します(かなり小さいです)。どのシートが存在するかを確認し、それに基づいて処理するかどうかを決定します。XSSFReaderを使用している場合は、を呼び出しgetWorkbookData()
てワークブックパーツを取得してから、おそらくXmlBeansを使用して処理します(経由WorkbookDocument.Factory
)