Advanced Excelでファイル操作(3)Excel帳票

Advanced Excelを用いて、OutSystemsからExcel帳票を出力する方法を確認していきます。

テンプレート帳票を用意しておいて、帳票を出力するときにシートを出力するファイルにコピー。必要なセルにだけ、OutSystemsのActionでデータを書き込む仕組み。

前提:(1)使い方に従って、セットアップがすんでいること

全部書くと長くなりそうなので、(1)使い方(2)Excelファイルを読み込む に書いたことは省略します。

動作確認環境

Platform Version:11.0.212.0

Service Studio Version:11.5.42

Advanced Excel:2.1.23

Sampleデータとして、OutSystemsSampleDataDBモジュールのSample_ProductとSample_ProductSalesを使用します。

テンプレートからシートをコピー

ここでは、用意したテンプレートファイルをResourcesに配置しておきます。

Workbook_Open Actionでテンプレートファイルを開きます。

ファイルは、Binary_DataにファイルのContentを指定して開きます。

開いたファイルから取得したシートを新たに作成したExcelファイルに追加すれば準備完了。

注意事項として、テンプレートファイルをWorkbook_Closeしてから、コピーしたシートを帳票に利用しようとするとエラーになりました。テンプレートファイルのWorkbookは最後にCloseする必要がありそうです。

値を書き込む

セルを指定して値を書き込む

Cell_Write Actionを使います。

Worksheet:事前にWorksheet_Selectしておいたシートオブジェクト

CellRow:行番号

CellColumn:列番号(A列が1、B列が2、……)

CellValue:書き込みたい値

CellType:数字型にしたいときは、ここに”integer”や”decimal”と指定します。テキストで良ければ未指定か”text”

画像を書く

画像を書き込むには、Image_Insert Actionを使います。

ImageFile:画像ファイルのバイナリを指定。サンプルDBでは、Entityに画像バイナリが入っているため、そのAttribute

ImageType:画像ファイルの形式。拡張子を見て同じものを設定しておけば良さそうですね。Descriptionでは、BMP, JPG, PNGのいずれか。

RowNumber:行番号

ColumnNumber:列番号

行を追加する

テンプレート下部のテーブルは、表示時点でないと何行になるかわかりません。

そこで、テーブルに表示したい行を処理するときに、Row_Insertで1行追加するようにしています。

InsertAtに行を追加したい行番号を指定してください。1行ずつ追加する場合は、NrRowsは未指定で大丈夫。

式を書く

式を適用するときも値と同じくCell_Write。

CellType=”formula”にして、CellValueに計算式を設定します。

また、ユーザがファイルを開いた時点で計算式を適用しておくには、Worksheet_Calculateなどを呼んでおく必要があります。

一覧

シェアする

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

フォローする