サーバーサイドでExcelを扱う業務システム、どの技術で開発する?

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サイトでは、製品の機能を気軽に試せるトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /