POI導出Excelの三つのworkbookの違い

867 ワード

三つのworkbookはそれぞれHSSFWork book、XSSFWork book、SXSSFWork bookです。
第一種類:HSSFWorkbook
EXCEL 2003バージョンに対して、拡張子は.xlsであり、この制限は、導出された行数が最大65535行である。リード行数が制限されていて、7万行未満なので、メモリオーバー(OOM)を送信しない場合が多いです。
第二種類:XSSFWorkbook
このような形式の出現は、最初のHSSFの限界によって生じたものであり、その導出行数が少ないため、XSSFWorkbookが生まれ、対応するのはEXCEL 2007+であり、拡張名は.xlsxであり、最大で104万行を導き出すことができるが、このように一つの問題として、OOMメモリが溢れている。XSSFWorkbookを使って作成したbook sheet row cellなどはメモリに保存されているため、ディスクに耐久化されていません。データ量が増加するにつれてメモリの需要量が増大します。OOMが出てくる可能性が高いですが、どうやって解決しますか?
第三種類:SXSSFWorkbook poi.jar 3.8+
SXSSFWorkbookは行数に応じてメモリ中のデータをファイルに永続化することができます。この場合、最大メモリ量5000行を設定し、new SXSSFWookbook(5000)行を設定し、行数が5000に達したときに、メモリをファイルに耐久化して、OOMを回避するようにします。これで大データから導き出された問題を完璧に解決しました。 POI https://www.yiibai.com/apache_poi/apache_poi_core_classes.html参照先:https://blog.csdn.net/qq_29631809/articale/detail/72785338