CodeZine(コードジン)

特集ページ一覧

【DioDocs帳票生成ハンズオン】強力な新機能「テンプレート構文」を使ってみる

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

Hello, DioDocs!

 ではハンズオンを開始します。まずはExcelからPDFを作成してみましょう。Visual Studioを起動して新しいプロジェクトを作成してください。

「新しいプロジェクトの作成」画面
「新しいプロジェクトの作成」画面

 「コンソール」アプリケーションを検索し、その中から「コンソールアプリ(.NET Core)」でC#のプロジェクトテンプレートを選択し「次へ」を選択してください。

プロジェクト名の設定
プロジェクト名の設定

 続いてプロジェクト名に「HelloDioDocs」と入力して、プロジェクトを「作成」します。この段階で「F5」キーを押してデバッグ実行し、次のように表示されることを確認しておきましょう。

デバッグ コンソールの画面
デバッグ コンソールの画面

 動作しましたね? ではDioDocsを試していきましょう!

 まずはNuGetサーバーからDioDocsのライブラリをダウンロード・適用します。「HelloDioDocs」プロジェクトの「依存関係」を右クリックし、「NuGetパッケージの管理」を選択します。

「NuGetパッケージの管理」を選択
「NuGetパッケージの管理」を選択

 続いて「参照」タブで「DioDocs」と入力して検索し、「Grapecity.DioDocs.Excel.ja」を選択したのち「インストール」します。バージョンはスクリーンショット上のものではなく、最新版を利用してください。

「Grapecity.DioDocs.Excel.ja」をインストール
「Grapecity.DioDocs.Excel.ja」をインストール

 続いてテンプレートとなるExcelファイルを作成します。今回はベースとなるExcelファイルを用意してあります。以下からダウンロードしてください。

 ダウンロードしたファイルをプロジェクト直下にコピーし、プロパティの「出力ディレクトリにコピー」を「新しい場合はコピーする」に変更してください。

「出力ディレクトリにコピー」を「新しい場合はコピーする」に変更
「出力ディレクトリにコピー」を「新しい場合はコピーする」に変更

 では実際にDioDocsを使ってみましょう。以下がHelloDioDocsプログラムの全体です。

using GrapeCity.Documents.Excel;

namespace HelloDioDocs
{
    class Program
    {
        static void Main(string[] args)
        {
            var workbook = new Workbook();
            workbook.Open("Template.xlsx");

            workbook.Worksheets[0].Range["B5"].Value = "Hello, DioDocs!";

            workbook.Save("Invoice.pdf", SaveFileFormat.Pdf);
        }
    }
}

 順に説明していきましょう。

 まず先頭でDioDocsの名前空間に対してusingを宣言しています。

using GrapeCity.Documents.Excel;

 続いてWorkbookオブジェクトを生成してExcelファイルを開きます。

var workbook = new Workbook();
workbook.Open("Template.xlsx");

 そして開かれたワークブックの先頭のシートの「B5」セルに対して、文字列を設定します。DioDocsのオブジェクト構造はVBAやVSTOのオブジェクト構造と非常に近しくなっており、それらの経験がある方には理解しやすい設計となっていることが見て取れるかと思います。

workbook.Worksheets[0].Range["B5"].Value = "Hello, DioDocs!";

 最後にInvoice.pdfという名称のPDFファイルで保存しています。

workbook.Save("Invoice.pdf", SaveFileFormat.Pdf);

 以下がテンプレートとなったExcelファイルと、そこから生成されたPDFファイルです。

テンプレートとなったExcelファイルと生成されたPDFファイル
テンプレートとなったExcelファイルと生成されたPDFファイル

 御中の左側、企業名の領域に「Hello, DioDocs!」という文字が設定された上でPDF化されていることが見て取れます。

 C#とExcelの一般的な知識だけで、多くのことができそうだということを感じていただけたのではないでしょうか?

テンプレート構文

 さて、先の例ではExcelに明示的に値を設定しに行きました。

 これはこれで悪くはないのですが、ExcelのレイアウトとC#のプログラムが密結合してしまっており、セルを1つ下に移動したいといった、些細なレイアウト修正でもプログラムの改修が発生してしまいます。

 こういったレイアウトとロジックを分離する手段として、一般的なユーザーインターフェイスを構築するためのアーキテクチャとしては、近年ではバインディングという手法がよく利用されます。.NETだとWPFなどで利用されていますよね。

 DioDocs V3Jではデータ構造とレイアウトを分離するため、バインディングと類似した「テンプレート構文」が新たに導入されました。これは非常に強力な機能です。

 過去の記事で、ExcelとC#コードを疎結合にするための実装例を紹介しましたが、今後は基本的にテンプレート構文を利用していくのが良いでしょう。

 では早速テンプレート構文を利用して、ハンズオンを進めましょう。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:クラウド時代にマッチする、ドキュメント生成・更新APIライブラリ「DioDocs(ディオドック)」
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5