💡

OutSystemsでExcelにプルダウンを出力する

に公開

OutSystemsでエクセルにプルダウンを動的に出力したい場面があったので、その方法をまとめたいと思います。

Excelのプルダウン

やりたいことはExcelでプルダウン(ドロップダウン)の選択肢を動的に出力することです。

Forge追加

OutSystemsでExcelを扱うにはAdvanced Excelを使います。こちらは無料で利用可能です。

https://www.outsystems.com/forge/component-overview/355/advanced-excel-o11

準備

Excelファイル

プルダウンを挿入するエクセルとして、ヘッダ行のみを記載したものを用意しておきます。
これをOutSystemsのResourcesに登録します。

プルダウンに設定するデータ

今回はサンプルとして、次のようなEntity(テーブル)から取得した会社名(Name)をプルダウンの選択肢に設定したいと思います。

Companyテーブル

物理名 論理名
Id 会社ID
Name 会社名

OutSystemsでエクセルを編集するにはServer Actionで実行する必要があります。
まず、AggregateでCompanyテーブルのレコードを取得しておきます。

Excelファイルを開く

エクセルファイルを操作するにはまず、Advanced ExcelWorkbook_Openを使いファイルを開きます。
次に操作対象のシートをWorksheet_Selectで選択します。

OutSystemsでの設定例

プルダウン追加

エクセルにプルダウンを追加するには、Advanced ExcelWorksheet_AddDropdownを使います。

項目 意味 値の例
WorkSheet プルダウン挿入シート Worksheet_Select.Worksheet
CellRange プルダウン挿入セル "A2"
ItemsList プルダウンの選択肢リスト GetCompanies.List
Item.Text 選択肢のテキスト[1] Company.Name
Item.Value 選択肢の値[2] Company.Name

後始末

エクセルファイルをServerActionのOutput Parameterとして返すには、バイナリデータを取得して値を設定します。

Output Parameterに設定する例

最後にWorkbook_Closeでエクセルを閉じて終了です。

Excelを閉じる

まとめ

エクセルに動的にプルダウンを設定する方法を確認しました。Advanced ExcelWorksheet_AddDropdownを使うと、任意のセルに動的にプルダウンを挿入できます。

処理の全体像

脚注
  1. Item.Valueとの違いがよくわかっていません ↩︎

  2. Item.Textとの違いがよくわかっていません ↩︎

Discussion