ExcelファイルをPDFファイルに変換する処理は、一般的な業務におけるレポートの作成や資料の共有などで頻繁に求められる機能です。その理由としては以下があげられます。
- PDFファイルはWebブラウザもしくはAcrobat Readerがインストールされているほぼすべてのデバイスで開いて表示できます。Microsoft Excelのインストールが不要で、データを見る必要があるすべてのユーザーとデータを共有するのに最適なファイル形式です。
- PDFファイルはExcelファイルとは異なり簡単に編集することができません。PDFファイルに変換することで、意図しないデータの変更を防ぎながら情報を共有できます。
全体として、ExcelファイルをPDFファイルに変換する処理は、データを保護すると共にさまざまなデバイスでデータを共有するための重要な機能です。
ExcelファイルをPDFファイルに変換する機能を実装するには?
この機能をアプリケーションに実装する方法として、Webを検索すると非常によく表示されるのがMicrosoft.Office.Interop.Excelを使用した方法です。しかしながら、この方法を採用する場合には以下のような検討すべき課題があります。
- 開発環境と実行環境にMicrosoft Excelのインストールが必要
- 作成したアプリケーションはサーバーサイドでの利用が非推奨
- 作成したアプリケーションがスレッドセーフではない
- 作成したアプリケーションのリソース消費量が高くCPUやメモリへの負荷が大きい
本記事では、これらの課題を解決する手段として、DioDocs for Excel(ディオドック)を使用した方法を紹介します。DioDocs for Excelでは、Microsoft Excelに依存せずにExcelファイルを読み込んでPDFファイルに変換することが可能です。
DioDocs for Excelを使用してExcelファイルをPDFファイルに変換
DioDocs for Excelでは以下の手順でExcelファイルをPDFファイルに変換することができます。ここでは、以下のような請求書のワークシートが含まれるExcelファイルをPDFファイルに変換します。

1. DioDocs for Excelをインストール
対象となる.NETアプリケーション(ここではコンソールアプリケーションを使用します)のプロジェクトにDioDocs for ExcelのNuGetパッケージ「DioDocs.Excel.ja」を追加します。

2. 空のワークブックを作成
空のワークブックを作成します。
using GrapeCity.Documents.Excel;
Workbook workbook = new Workbook();
3. 対象のExcelファイルを読み込む
PDFファイルに変換するExcelファイルをワークブックに読み込みます。
workbook.Open("SimpleInvoiceJP.xlsx");
4. PDFファイルに変換する際のオプションを設定
ワークシート全体をPDFファイルの1ページに出力するようにオプションを設定します。
workbook.Worksheets[0].PageSetup.Orientation = PageOrientation.Portrait;
workbook.Worksheets[0].PageSetup.IsPercentScale = false;
workbook.Worksheets[0].PageSetup.FitToPagesWide = 1;
workbook.Worksheets[0].PageSetup.FitToPagesTall = 1;
5. PDFファイルに保存
ワークブックをPDFファイルとして保存します。
workbook.Save("SimpleInvoiceJP.pdf");
以上のように非常にシンプルな手順でExcelファイルをPDFファイルに変換することが可能です。

このほかにも改ページ、セキュリティオプション、罫線のスタイルなどPDFファイルに出力する際に設定できるプロパティも用意しています。
DioDocs for Excelを採用するメリット
DioDocs for Excelを使用することには、以下のような利点があります。
- 開発環境と実行環境にMicrosoft Excelのインストールは不要
- .NET Frameworkおよび .NETで動作するアプリケーションで利用可能。開発するプラットフォームごとにライブラリを切り替えたり、別途追加で購入する必要がない
- クラウドで動作するアプリケーションでも利用できるので、サーバーレスやコンテナを利用したシステム化が容易
- VBAやVSTOを利用していた開発者には使い慣れたExcelのオブジェクトモデルを採用しており、学習コストが高くなく移行が難しくない
Microsoft.Office.Interop.ExcelやOSSのライブラリがシステム開発の要件に見合わない場合には、DioDocs for Excelの採用も是非ご検討ください。
さいごに
弊社Webサイトでは、製品の機能を気軽に試せるトライアル版も公開していますので、こちらもご確認いただければと思います。
また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。