ExCella Reportsで請求書の作成
本連載の第4回では、POIを直接操作することで「納品書」や「月間売上一覧」を作成する方法を紹介しましたが、今回はExCella Reportsのサンプルプログラムを実行して請求書を作成することで、ExCella Reportsの特徴を確認してみましょう。サンプルプログラムで作成する請求書は下記になります。
- 入力ファイル名:請求書テンプレート.xls
- 出力ファイル名:請求書サンプル.xls
第4回で「納品書」や「月間売上一覧」を作成した時もテンプレートシートを利用しましたが、ExCella Reportsの場合もテンプレートシートを利用します。固定で表示する文言や、フォント、罫線、セルの背景色などは使い慣れたExcelで直接設定できます。今回利用する請求書のテンプレートは以下になります。
第4回で利用したテンプレートシートとの主な違いは以下の点です。
1. 用意されているタグの種類が豊富
納品書を作成したときは、値が変動する箇所には「$変数名」の形式でセルに値を設定し、値と表示するレコード数が変動する箇所には「$変数名[]」の形式で値を設定しておくようにしました。
一方、ExCella Reportsでは値が変動する箇所には、用途によって次のタグが利用することができます。
タグ | 説明 |
$ | タグを値に置換する |
$I | タグを画像に置換する |
$R[] | タグを行方向に繰返置換する |
$C[] | タグを列方向に繰返置換する |
$BR[] | タグに指定された範囲を行方向に繰返置換する |
$BC[] | タグに指定された範囲を列方向に繰返置換する |
$SUM[] | タグに指定された値を合計する |
$REMOVE[] | タグ行を削除する |
請求書作成のサンプルでは3種類のタグ(「$」「$I」「$R[]」)を利用しています。また、事前に用意されているタグでは用途を満たせない場合は、拡張してカスタムタグを作成することもできます。
2. 1つのセル内に固定文字列とタグを複数配置することが可能
請求書のテンプレートシートの例では「請求日」と「${請求日付}」が1つのセルに配置されています。変換処理が実行されるとタグの部分だけ値が変換され、固定文字列と共に表示されます。また、1つのセル内に複数の「${パラメータ名}」タグが配置されている場合でも適切に変換処理が実行されます。
3. 繰返行の下にあるセルも同時に行移動が可能
納品書を作成したときは、記載できる明細の数を「最大で11個まで」という固定形式にすることで、明細欄の下に配置した合計金額を記載するセルが明細行に上書きされてしまうことがないように制御していました。
一方、ExCella Reportsでは行方向に繰返置換を実行したい箇所に「$R[]」タグを設定しておけば、その下のセルも繰返しの分だけ同時に下方向に行移動させることも可能です。サンプルでは「小計」「値引」「消費税額(5%)」「合計」の箇所は、データの数だけ繰返しが実行される明細行の下に配置されていますが、明細のデータ数に合わせて、それらの配置は下方向に行移動されていることが、作成した請求書のイメージで確認できます。