💡
OutSystemsでExcelにプルダウンを出力する
OutSystemsでエクセルにプルダウンを動的に出力したい場面があったので、その方法をまとめたいと思います。
Excelのプルダウン
やりたいことはExcelでプルダウン(ドロップダウン)の選択肢を動的に出力することです。

Forge追加
OutSystemsでExcelを扱うにはAdvanced Excelを使います。こちらは無料で利用可能です。
準備
Excelファイル
プルダウンを挿入するエクセルとして、ヘッダ行のみを記載したものを用意しておきます。
これをOutSystemsのResourcesに登録します。

プルダウンに設定するデータ
今回はサンプルとして、次のようなEntity(テーブル)から取得した会社名(Name)をプルダウンの選択肢に設定したいと思います。
Companyテーブル
| 物理名 | 論理名 |
|---|---|
| Id | 会社ID |
| Name | 会社名 |
OutSystemsでエクセルを編集するにはServer Actionで実行する必要があります。
まず、AggregateでCompanyテーブルのレコードを取得しておきます。
Excelファイルを開く
エクセルファイルを操作するにはまず、Advanced ExcelのWorkbook_Openを使いファイルを開きます。
次に操作対象のシートをWorksheet_Selectで選択します。
OutSystemsでの設定例



プルダウン追加
エクセルにプルダウンを追加するには、Advanced ExcelのWorksheet_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 ExcelのWorksheet_AddDropdownを使うと、任意のセルに動的にプルダウンを挿入できます。
処理の全体像

Discussion