「業務システムが出力したデータをExcelでもらえないだろうか?」という要求に、簡単に対応できる高速ライブラリ「ExcelCreator for Java」[PR]
「この業務システムが出力したデータをExcelのシートでもらえないだろうか」。業務システムを運用している現場であればどこでも 、こんな要望をいちどは聞いたことがあるのではないでしょうか。
業務システムのデータを活用して柔軟なレポートや緻密なレイアウトの帳票に仕上げたり、複雑な分析を行うには、データをExcelへインポートできるようにすることが手軽で、効果的な方法のひとつです。
業務システムからExcelへとデータを出力する方法には、CSVやタブ区切りのファイル形式が選択されがちですが、もっと便利な選択肢として、Excelのデータ形式であるxlsxファイルを直接読み書きできるライブラリを用いる方法があります。
アドバンスソフトウェアが提供する「ExcelCreator for Java」は、そうした業務システムの開発にうってつけのライブラリです。しかも製品名が示すように、多くの業務システム開発で使われているJavaに対応しています(もちろん.NET版もあります)。
「ExcelCreator for Java」ならクラウドでも活用可能
「ExcelCreator for Java」はJava EEやJava SE環境で作成したアプリケーションからExcelシートの生成、読み込み、加工などができるライブラリです。このライブラリがあればExcelそのものも、Excelのライセンスも必要ありません。
Java 7もしくはそれ以降の環境に対応。OSはWindows 7やWindows Serverに限らず、CentOSやUbuntuといったLinuxでも動作します。つまりクラウド上の仮想マシン上にあるLinuxサーバのJava環境からでも、このライブラリを用いてExcelファイルを出力できるのです。
CSVやタブ区切り形式のファイルは、Excelで読み込んだ後であらためてセルのフォーマットや罫線、計算式などを設定しなおす必要がありますが、xlsxファイルを直接出力できれば、Excelに読み込んですぐに使えるワークシートが出力できます。
しかも、複雑なExcelシートを大量に生成する場面でも、アドバンスソフトウェアの独自の技術によって後述するように非常に高速に出力できます。
「ExcelCreator for Java」 を使うことで、業務のなかでより効率的にExcelを活用できるようになるはずです。
Javaでシンプルなプログラミング
ExcelCreator for Javaのプログラミングは非常にシンプルです。
ExcelCreator for Javaのプログラミングをシンプルにしている最大の理由は、分かりやすいコード、そしてExcelファイルのオーバーレイオープン機能などにあります。
例えば、セルA1に値をセットするのであれば、引数に”A1”と値”1000”をセットした一行だけで済みます。
セルの色や罫線などフォーマットの設定も、アトリビュートを設定する関数に引数を渡すだけ。セルの背景色や罫線など、Excel本体で可能な書式のほとんどが簡単なコードで実現できます。実際の例を下記に示します。
// A1 セル単体に背景色 "赤" を設定。
xlsxCreator.getCell("A1").getAttr().setBackColor(Color.red);
// A1:E5 セルに "Box 罫線 (線種:実線、線色:黒)" を設定。
xlsxCreator.getCell("A1:E5").getAttr().box(BoxType.Ltc, BorderStyle.Thin,
ExcelColor.Black);
// 座標指定でもセル単体/範囲で書式の設定が可能。
xlsxCreator.getPos(0, 0).getAttr().setBackColor(Color.red);
xlsxCreator.getPos(0, 0, 4, 4).getAttr().lineTop(BorderStyle.Thin,
Color.black);
Javaで細かく作り込む必要なし。既存のExcelシートを読み込んで作成
ExcelCreator for Javaは細かい書式をシンプルなコードで設定できると説明しましたが、一方で凝ったフォーマットのExcelシートをいちいち細かくプログラミングしなくても済む方法も提供しています。それがExcelファイルの「オーバーレイオープン機能」です。
これはテンプレートとなるExcelファイルを用意しておくと、そのテンプレートを基にして同じフォーマットのExcelシートを作成、値を書き込んで保存するというものです。
これにより大きく2つのメリットが得られます。1つは、前述のように帳票のような凝ったExcelシートをJavaで作りこむ必要がなくなるということです。プログラマの代わりに現場のユーザーに、自分で使いやすいようにExcelで帳票やレポートのフォーマットを作り込んでもらえばいいでしょう。
もう1つのメリットは、あとからでも自由にExcelシートのフォーマットを変えられる点です。ExcelCreator for Javaでは、あらかじめExcelシート上で定義されたセルの名前に従って値を書き込むことができますので、プログラムを書き換えることなく、Excelシートの方でどの位置にどれに関する値を書き込むべきかを設定できます。
例えば、なんらかの税率が変わったりしたとしても、Excel上の計算式を変えれば業務システム側を変更することなく、新しい税率に対応した帳票を簡単に発行できるようになります。
それだけでなく、既存のExcelファイルを読み込んでセルの値を取得することも簡単ですので、すでに存在するExcelファイルを業務システムの入力に位置付けることも容易です。
非常に高速なExcelシートの生成
最後にExcelCreator for Javaのパフォーマンスについて触れておきましょう。
開発元であるアドバンスソフトウェアによると、数値と罫線を1万セル分書き込んだとしても、ExcelCreator for Javaでは0.12秒で実行が終了すると説明されています。
同社が実施したベンチマークによると、オープンソースでExcelシートを生成するライブラリとして知られる「Apache POI 3.15」では同様の処理に最大10秒以上かかっており、性能差は80倍以上。1万セルというと多いように見えますが、20列のデータを500行書き込むと1万セルになりますので、一般的なExcelシートでも決して珍しくないデータ量です。
ExcelCreator for Javaでは、さらに重い処理となる10万セル分の文字列と罫線を書き込む処理でも1.1秒で済むと報告されています。およそ実用的な範囲での利用で実行時間が問題になることはないといえるレベルではないでしょうか。
ExcelCreator for Javaによる業務システムとExcelの連携は、業務システムを利用する現場にとって新しい柔軟性と迅速性を提供できるようになるでしょう。
(本記事はアドバンスソフトウェア提供のタイアップ記事です)
あわせて読みたい
Microsoft Azure、大規模基幹業務向けベアメタルサーバを年内に国内提供開始。最大480コア/20テラバイトメモリ、東西両リージョンから
≪前の記事
AWS、国内2カ所目のリージョン「大阪ローカルリージョン開設」を発表。耐障害性の高い単一のデータセンター。当初は招待制で2018年開設予定