Microsoft ExcelでVBAやExcel関数を活用したさまざまな計算・集計処理を実施しているExcel業務をシステム化したいというニーズは以前から存在しています。
システム開発においてExcel業務の要件を実装する際に、VBAによる各種処理の代替としてよく挙げられるのが「Microsoft Officeオートメーション(以下Officeオートメーション)」です。Officeオートメーションの機能をアプリケーションに組み込む(Officeオートメーションの機能を組み込んだアプリケーションを以下Excelアプリケーションと呼称します)ことでExcelが備える各種機能を使うことができるようになり、Excel業務のシステム化を行うことが可能です。
しかしながら、このExcelアプリケーションをサーバーサイドで実行することはパフォーマンスやセキュリティ、ライセンスにおいて多くの問題があり、Microsoftからも公式に非推奨であると言及されています。その理由としては、ExcelをはじめとするOffice製品がデスクトップ(クライアント)アプリケーションとして設計されており、サーバーサイドでの利用を考慮していないことにあります。
サーバーサイドでExcelアプリケーションを使用する問題については、弊社のイベント「ECHO 2022」でも紹介しています。
サーバーサイドでのExcelアプリケーションの代替方法
Open XML SDK
Excelアプリケーションの代わりに、同等の機能をサーバーサイドに実装する方法がいくつかありますが、代表的な方法としてはOpen XML SDKを使用してシステム化する方法が挙げられます。
しかし、Open XML SDKのリソース消費量は高く、サーバーのCPUやメモリへの負荷が多いため、その他の重要な処理のパフォーマンスに影響を与える可能性があります。
DioDocs for Excel
弊社の「DioDocs for Excel(ディオドック)」は高速かつ軽量なAPIライブラリですので、Open XML SDKのパフォーマンスに満足できない場合や、サーバーのコストをより抑えたい場合はDioDocs for Excelの導入を検討いただくことをお勧めします。
DioDocs for ExcelではPDFファイルへの出力も可能
さらにDioDocs for ExcelではExcelファイルの他にPDF、CSV、HTMLや画像ファイルとしての出力も可能になっており、よりさまざまな要件に対応することが可能です。
そのほかにもDioDocs for Excelには以下のようなメリットがあります。
- 開発環境と実行環境にMicrosoft Excelのインストール(ライセンス)は不要
- VBAやVSTOを利用していた開発者には使い慣れたExcelのオブジェクトモデルを採用しており、学習コストが高くなく移行が難しくない
- .NET Frameworkおよび.NETで動作するアプリケーションで利用可能。開発するプラットフォームごとにライブラリを切り替えたり、別途追加で購入する必要がない
- クラウドで動作するアプリケーションでも利用できるので、サーバーレスやコンテナを利用したシステム化が容易
- セル、テーブル、シートに対してデータをバインド可能。外部のデータソースと連携が容易
NPOI
また、Open XML SDK以外のライブラリとしてNPOIの利用を検討される場合もあるかと思います。弊社ではNPOIとDioDocs for Excelの比較資料を用意していますので、こちらもご覧いただければと思います。
さいごに
弊社Webサイトでは、製品の機能を気軽に試せるトライアル版も公開していますので、こちらもご確認いただければと思います。
また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。