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などを呼んでおく必要があります。

一覧

シェアする

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

フォローする

コメント

  1. fumi_I より:

    【開いたファイルから取得したシートを新たに作成したExcelファイルに追加すれば準備完了。】
    の部分なのですが、取得したシートをそのままCreateしたWorkbookに追加(コピー?のイメージ)できず困っています。
    Addsheetではできないですよね?
    ぜひご教示いただきたく思います。
    よろしくお願い致します。

    • jyunji.watanabe より:

      AddSheetで合っていると思います。
      コメントだけだでは判別できませんが、以下の流れの②でシートを取得しているでしょうか。

      【開いたファイルから取得したシートを新たに作成したExcelファイルに追加すれば準備完了。】
      を分解すると
      ①テンプレートファイルを開く(Workbook_Open Action)
      ②開いたテンプレートファイルのワークシートを選択する(Worksheet_Select Action)
       入力は①のOutputと、選択するシート名
       出力としてObject型のワークシートオブジェクトが得られます
      ③Excelファイルを作成する(Workbook_Create Action)
      ④②で選択したワークシートを③のOutput(ワークブックオブジェクト)に追加する(WorkBook_AddSheet Action)
      という流れです。

      この流れでやっているようであれば、エラーメッセージや問題を再現できるomlファイルをください。