以前の記事
DioDocs for Excelを使って帳票アプリを作る
帳票処理は、すべて自分で作るのは難しいので、何かしらのライブラリを使うことがほとんどです。業務アプリケーションを開発するときに便利なのが、グレープシティ社の「DioDocs for Excel」というExcelファイルを読み書きができるAPIライブラリです。
このライブラリは、単純なExcelファイルの書き出しだけでなく、Excelファイルとしてあらかじめ罫線や色づけなどをしたテンプレートを作っておいて、そこにプログラムから値を埋め込むこともできるため、きれいなレイアウトの帳票でも、工数をかけずに作れます。またPDFへの出力にも対応しているため、印刷を目的とした用途にも使えます。Excel帳票作成の詳細は「Excel帳票を作成する」ページをご覧ください。
帳票出力には、さまざまなライブラリがありますが、グレープシティ社のライブラリが好まれる理由は、その歴史にあります。同社のライブラリは、Windows上のアプリ(.NETの登場前)からずっとあり、アップデートを重ね、.NET環境になっても、ほぼ同じ使い勝手で開発できます。そのため長らく使われてきた業務アプリでは、過去の開発資産や開発経験を活かすために、このライブラリが採用されるケースが多いです。
DioDocs for Excelをインストールする
DioDocs for Excelは、NuGetパッケージとして提供されているので、NuGetパッケージマネージャを使ってインストールします。VS Codeに、NuGet Package Mangerをインストールしていない場合は、[拡張]からインストールしておいてください(図1)。
NuGet Package Managerをインストールしたら、次のようにして、DioDocs for Excelをインストールします。
【手順】DioDocs for Excelをインストールする
[1][Add Package]を選択する
[F1]キーを押してコマンドエクスプローラを開き、NuGet Package Managerの[Add Package]を選択します(図2)。
[2]パッケージ名を入力する
インストールするパッケージ名を入力します。「DioDocs For Excel」は、「GrapeCity.DioDocs.Excel.ja」です。そのように入力して[Enter]キーを押して、バージョンを選択すると、インストールされます(図3)。
インストールしたライブラリは、ワークフォルダ以下にインストールされるため、Dockerコンテナをイメージ化して、別のコンピュータに移行する場合も、まとめてもっていけます。
DioDocs for Excelの製品ライセンス
このようにしてインストールしたDioDocs for Excelは、30日間のみ利用できる体験版です。30日を経過すると利用できなくなるほか、30日未満でも、「Excelファイルを書き出したときに体験版である旨のワークシートが書き出される」「PDFファイルを書き出したときに体験版である文言が含まれる」などの制限があります。
DioDocs for Excelの購入、および、購入後のライセンスのインストールについては、グレープシティ社のページを参照してください。
帳票サンプル
これでDioDocs for Excelが使えるようになりました。実際に、ちょっとした帳票を作ってみましょう。Pgogram.csファイルを、リスト2のように修正します。
using GrapeCity.Documents.Excel; // ワークブックの初期化 Workbook workbook = new Workbook(); // アクティブなワークシートの取得 IWorksheet worksheet = workbook.ActiveSheet; // 書き込むダミーのデータ object[,] data = new object[,]{ {"氏名", "電話番号", "メールアドレス", "郵便番号", "都道府県", "住所"}, {"大川仁美", "055425366", "hitomi38579@itihvkjd.hlkpt.lm", "406-0854", "山梨県", "笛吹市境川町寺尾3-18-15"}, {"菅井礼子", "0744610199", "reikosugai@siadwn.fwr", "639-2245", "奈良県", "御所市今住3-8-16"}, {"福地浩之", "0596008348", "hiroyuki0893@cnous.xb.gwe", "511-0065", "三重県", "桑名市大央町3-12-3"}, {"芦田重樹", "0583477675", "iashida@hpebuwjuf.gy", "501-0411", "岐阜県", "本巣市上高屋4-2-18"}, {"高岡宏寿", "0520974210", "itakaoka@lukbsilq.ae", "441-8021", "愛知県", "豊橋市白河町3-17"} }; // データを設定する worksheet.Range["A1:F6"].Value = data; // xlsxとして保存 workbook.Save("example.xlsx", SaveFileFormat.Xlsx);
※このデータは、「疑似個人情報データ生成サービス」を用いて生成しました。
これはdata配列のデータを書き込んだexample.xlsxを作る例です。DioDocs for Excelを使って、Excelファイルを作る処理の流れは、次の通りです。
(1)インポート
1行目にあるように、まずは、ライブラリをインポートします。
using GrapeCity.Documents.Excel;
(2)初期化と書き出し先ワークシートの取得
Workbookオブジェクトを初期化します。すると、既定のWorkSheetオブジェクト(1枚目のワークシート)が作られるので、これを取得します。
// ワークブックの初期化 Workbook workbook = new Workbook(); // アクティブなワークシートの取得 IWorksheet worksheet = workbook.ActiveSheet;
(3)データの書き込み
データは、(2)で取得したワークシートに対して書き込みます。あらかじめデータを用意しておいて、それをセルに書き込む操作をします。下記の例にあるように、「"A1:F6"」のようなExcelの列表記を使えます(行・列の数値で指定することもできます)。
object[,] data = new object[,]{ …略… }; // データを設定する worksheet.Range["A1:F6"].Value = data;
(4)保存する
最後に、Saveメソッドを呼び出して、ファイルとして保存します。第2引数の「SaveFileFormat.Xlsx」はファイル形式の指定で、xlsx形式という意味です。
// xlsxとして保存 workbook.Save("example.xlsx", SaveFileFormat.Xlsx);
(5)実行して確認する
このプログラムの入力を終えたら、保存して実行します。実行するには、ターミナルから、次のように入力します。
dotnet run
実行すると、「example.xlsx」が作られます。これはワークフォルダに作っているので、Windowsホストのエクスプローラからも、このファイルを参照できます。ダブルクリックしてExcelなどで開けば、図4に示す内容のExcelファイルができたことを確認できます。