Which is better API for excel parsing in Java Apache POI or JExcel API? In terms of speed, memory utilization and code stability.
4 に答える
個人的には、JExcelよりもPOIをお勧めします。JExcelAPIではなくPOIを選択した理由は次のとおりです。
- POIは、新旧両方のMSExcelシート形式をサポートします
- よりクリーンなAPIを備えています(imho)
- 私が見る限り、JexcelApiが抱えている苛立たしいDate \ Timeの問題は発生していません(日付表示)。
私は両方を使う機会がありました。私の意見では、POIは非常によく考えられた使いやすいAPIを備えています。私の観点からの最大の利点は、ワークシートインスタンスの作成をファクトリオフして、ユーザーモデルインターフェイスのコンテキストですべてを処理できることです。つまり、コードは、どちらがどちらであるかを気にすることなく、古いExcelファイル形式と新しいExcelファイル形式の両方を処理できます。
さらに、同じワークシートインスタンスを読み書きできます。JExcelApiでは、「読み取り可能」シートと「書き込み可能」シートの間にこの非常に奇妙な分割があり、奇妙だと感じました。その結果、コードで「読み取り」から「書き込み」に移行するための厄介な回避策を導入する必要がありました。
古いバイナリファイル(POI HSSF)とJExcelApiでPOIを使用すると、意味のあるパフォーマンスの違いに気づきませんでした。ただし、POI HSSF(古い形式)とPOI XSSF(新しい形式)の間には、パフォーマンスに大きな違いがあります。これは、XMLの解凍と解析に必要なすべての余分な作業が原因であると思います。
I recommend using Apache POI, which I used before, especially if you support the Office 2007/8 OpenXML format. JExcel doesn't support that. Apache POI also supports the Office applications.
I cannot comment on the performance part. However, I did have a very large Excel document (millions of columns) but with a relatively small file (few megabites). POI did take few minutes to parse it and modify it. However, in this case, Excel itself took minutes just to load the document.
Apache POIは最新の形式で優れていますが、速度的に(解析)JExcelの方が優れています(notnoopが言ったようにJExcelはOpenXML形式をサポートしていません)
JExcelAPiは、Excel 2007形式をサポートしていないことを除けば、ApachePOIよりも優れています。