#本記事の内容
JavaでExcelを読み書きためにApache POIを使っているときに、Excelのバージョンによって対応するコンポーネントの種類が異なったり、使えないバージョンがあったので忘備録としてまとめることにしました。
(もし、間違いがあれば教えていただけると嬉しいです。)
#Apache POIとは
初めに、簡単にApache POIについて説明します。
Apache POIとは、JavaのプログラムでOfficeのファイルを読み書きできるライブラリです。
>Apache POI公式サイト
#Excelの読み書きに使うコンポーネント
Excelの読み書きを行うためのコンポーネントは3種類あり、拡張子や用途によって使用するものが異なります。
コンポーネント | 読込 | 書込 | 拡張子 | 対応バージョン |
---|---|---|---|---|
HSSF | 〇 | 〇 | .xls | Excel 97-Excel 2003 (BIFF 8) |
XSSF | 〇 | 〇 | .xlsx | Excel 2003- (OOXML) |
SXSSF | × | 〇 | .xlsx | Excel 2003- (OOXML) |
HSSFやXSSFはExcelのバージョンに合わせて通常の読み書き時に使用します。
※Excel 97より前のバージョン(BIFF 5.0,7.0)では使用できないのでご注意ください。
SXSSFは読み込みはできませんが、ファイルサイズの大きいExcelを書き込む際にメモリを最適化してくれます。
(Apache POIの公式のものではありませんが、読み込み時はStreaming Readerというライブラリが便利です。)
#おわりに
今回は簡単にApache POIが使用できるExcelのバージョンとコンポーネントについてまとめてみましたが、後日、Apache POIの使用方法についてもまとめていけたらと思います。