StreamSheet - 大容量ExcelエクスポートのためのKotlin/Spring Bootライブラリ
(github.com/danpung2)こんにちは、StreamSheetを作った開発者です。
実務でExcelエクスポートを実装する際、OOM(OutOfMemory)の問題が頻繁に発生しており、発生するたびに個別に修正していました。
また、Excelエクスポート機能を作るたびに、繰り返しボイラープレートを書かなければなりませんでした。
こうした問題を実務で何度も経験する中で、簡単に大容量データをExcelファイルとしてエクスポートできるSDKを作りたいと思うようになりました。
[プロジェクト目標]
メモリ安定性: JPA Stream、JDBC ResultSet、MongoDB Cursorなどを通じた100万行以上のデータエクスポートでも、OOMなしで安定動作
使いやすさ: DTOに@ExcelSheet、@ExcelColumnを付けるだけで簡単にカラム定義
統合性: Spring Boot Auto-configurationによりすぐに利用可能
ご確認いただき、フィードバックをいただけると幸いです。
4件のコメント
テンプレートベースのExcelレポート生成ライブラリ(TBEG)を使ってみてください。
https://github.com/jogakdal/data-processors-with-excel
Excel には最大行数があるので
大容量の場合は csv のほうがよくないですか
おっしゃるとおり、Excel には最大で約104万行という行数制限があるため、大容量データの場合は CSV のほうがより適した選択肢になり得ますし、私自身も CSV を好むほうです。
ただ、エクスポート機能を要望してくださった方々の多くが Excel フォーマットを好まれていたため、その過程で繰り返し発生するコード作成や OOM 問題を減らしたいという思いから始めたプロジェクトです。
ご意見ありがとうございます!
私も実務経験上、顧客はCSVよりもExcelのほうを好む傾向があるように思います。
私の場合もそうですし、確かに需要はありそうです。