javaでパスワード保護されたExcelファイルを作る

javaでExcelファイルとか作るのテンション下がりますよね!こんにちは!


Excelファイル全体をパスワード保護して、パスワード入力しないと開けないようにしたいという案件がありまして。
それをjavaで実装する必要がありまして。まあ自分の案件じゃないんですけど。
質問されたのでちょっと調べてみました。


java - Create a password protected excel file using apache poi? - Stack Overflow
去年の1月の投稿ですが、「無料で暗号化できるライブラリなんて存在しないぜ!金払え金!それが嫌ならzip圧縮してそいつにパスワードかけな!」みたいなことが書いてある雰囲気です。
有償だとAspose.Cellとかが結構有名みたいですね。


でもやっぱりこんなことのために有償のもの使うの嫌なので必死に探して見つけました。
Edit/View Excel Spreadsheet with Jxcell in Java
このライブラリでパスワードがかけられそうです。


サンプルも結構充実してます。
Edit/View Excel Spreadsheet with Jxcell in Java
暗号化は「Open Encrypted Excel files and Save Encrypted Excel files」ってやつを使えばいけそうです。


サンプルのソースを一部引用します。

View m_view = new View();
// 指定したセルに値を書き込み
m_view.setTextAsValue(1,2,"Jan");
m_view.setTextAsValue(1,3,"Feb");
(略)
// encrypt.xlsという名前でhiというパスワードをかけて保存
m_view.write(".\\encrypt.xls", "hi");


かんたん…!
あんまり詳しく調べてませんが、関数の使用なども含め、簡単なExcelファイルの作成は出来そうです。
ちなみに日本語も使えました。


Mavenに上がってないのだけがちょっとアレ。
他にも同様の操作の出来る無償ライブラリはあるかもしれませんが、とりあえず要件は満たせたので今回はこんなところで。

スポンサーリンク