「業務システムが出力したデータをExcelでもらえないだろうか?」という要求に、簡単に対応できる高速ライブラリ「ExcelCreator for Java」[PR]

2017年6月1日

「この業務システムが出力したデータをExcelのシートでもらえないだろうか」。業務システムを運用している現場であればどこでも 、こんな要望をいちどは聞いたことがあるのではないでしょうか。

業務システムのデータを活用して柔軟なレポートや緻密なレイアウトの帳票に仕上げたり、複雑な分析を行うには、データをExcelへインポートできるようにすることが手軽で、効果的な方法のひとつです。

業務システムからExcelへとデータを出力する方法には、CSVやタブ区切りのファイル形式が選択されがちですが、もっと便利な選択肢として、Excelのデータ形式であるxlsxファイルを直接読み書きできるライブラリを用いる方法があります。

アドバンスソフトウェアが提供する「ExcelCreator for Java」は、そうした業務システムの開発にうってつけのライブラリです。しかも製品名が示すように、多くの業務システム開発で使われているJavaに対応しています(もちろん.NET版もあります)。

fig

「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ファイルを出力できるのです。

fig

CSVやタブ区切り形式のファイルは、Excelで読み込んだ後であらためてセルのフォーマットや罫線、計算式などを設定しなおす必要がありますが、xlsxファイルを直接出力できれば、Excelに読み込んですぐに使えるワークシートが出力できます。

しかも、複雑なExcelシートを大量に生成する場面でも、アドバンスソフトウェアの独自の技術によって後述するように非常に高速に出力できます。

「ExcelCreator for Java」 を使うことで、業務のなかでより効率的にExcelを活用できるようになるはずです。

Javaでシンプルなプログラミング

ExcelCreator for Javaのプログラミングは非常にシンプルです。

ExcelCreator for Javaのプログラミングをシンプルにしている最大の理由は、分かりやすいコード、そしてExcelファイルのオーバーレイオープン機能などにあります。

例えば、セルA1に値をセットするのであれば、引数に”A1”と値”1000”をセットした一行だけで済みます。

fig

セルの色や罫線などフォーマットの設定も、アトリビュートを設定する関数に引数を渡すだけ。セルの背景色や罫線など、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);

ExcelCreator for Javaでのコードの例

Javaで細かく作り込む必要なし。既存のExcelシートを読み込んで作成

ExcelCreator for Javaは細かい書式をシンプルなコードで設定できると説明しましたが、一方で凝ったフォーマットのExcelシートをいちいち細かくプログラミングしなくても済む方法も提供しています。それがExcelファイルの「オーバーレイオープン機能」です。

これはテンプレートとなるExcelファイルを用意しておくと、そのテンプレートを基にして同じフォーマットのExcelシートを作成、値を書き込んで保存するというものです。

これにより大きく2つのメリットが得られます。1つは、前述のように帳票のような凝ったExcelシートをJavaで作りこむ必要がなくなるということです。プログラマの代わりに現場のユーザーに、自分で使いやすいようにExcelで帳票やレポートのフォーマットを作り込んでもらえばいいでしょう。

fig

もう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の連携は、業務システムを利用する現場にとって新しい柔軟性と迅速性を提供できるようになるでしょう。

(本記事はアドバンスソフトウェア提供のタイアップ記事です)

あわせて読みたい

Java 業務アプリケーション 開発ツール Excel PR




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本