Excelファイルにデータを書き込むには

Excel ファイルへデータを書き込むフローを作成する

1. 「ファイル」タブからFileGetコンポーネント(「ファ 1 イルを読み込みます」)を配置し、Excelファイ ルへ書き出すためのデータファイルへのファイルパスを指定して、ストリーム定義を設定する

 

2. Mapper コンポーネント、次に「Excel」タブからExcelPOIOutputコンポーネント(「Excel ファイルへデータを書き込みます(POIバージョン)」)をドラッグして配置する

3. 「ストリーム定義を Record に変換します」というダイアログが表示されたら「はい」をクリックして閉じる

4. 必要に応じてその他のコンポーネントを配置し、接続する

 

ExcelPOIOutputコンポーネントの直前に置いた Mapper のコンポーネントのフィールド定義は、Excel ビルダーにより設定されます。

 

HINT
Excel へデータを出力する ExcelOutput コンポーネントには、「ExcelPOIOutput」(POI バージョン)と「ExcelOutput」の 2 種類がありますが、ExcelPOIOutput の使用が推奨されています。

 

Excel ビルダーで書き込み範囲を指定する

1. 配置したExcelPOIOutputコンポーネントをダブルクリックして、マクロを有効にしてExcelを起動し、書き込み先の実データファイル、もしくはデータ領域のテンプレートとしたい任意のExcelファイルを開く

2. Excelの「FlowDesigner」タブをクリックし、「ExcelBuilder」アイコンをクリックして Excelビルダーを起動する

3. Excel ビルダーの「レコード」タブの「追加」をクリックし、表示されるダイアログでデータの 書き込み範囲を指定して、レコード名、1レコードあたりの行数も指定する

4. レコード範囲を選択し、フィールド名を一括(「フィールド名取得」)もしくは個別に設定する

5. 単一セルに書き込むデータがある場合は、Excelビルダーの「単一セル」タブの「追加」をクリックして指定する

6. 「登録」をクリックし、確認のダイアログで「OK」をクリックして、Excel も終了する

 

Excel ビルダーでの指定により、データの書き込み範囲と、コンポーネントのフィールド定義が設定されます。 次の手順で、データをマッピングにより対応付けます。 

HINT
ExcelPOIInput/ExcelPOIOutputコンポーネントの処理では、指定領域の範囲内でデータの取得/更新が行われるため、3のレコード範囲の指定では、実データが入力される最大範囲を指定してください。

 

データ書き込みのマッピングを指定する

1. ExcelPOIOutputコンポーネントを選択し、ストリームペインでフィールド定義が設定されていることを確認して、必要に応じデータ型を変更する

2. Excelビルダーで単一セルの範囲を指定した場合は、インスペクタの「単一セル」タブに情報が入力されていることを確認する

HINT
ExcelPOIOutput コンポーネントの 「ファイルパス」プロパティ
「ファイルパス」プロパティには、書き込み用 Excel ファイルへのパスを指定します。指定したファイルが存在しない場合には、空の Excel ブックが作成され書き込みが 行われます。Excel ビルダーでデータ範囲のテンプレートに使用したファイルへのパスを指定することもできますが、その場合は「ファイルを更新」プロパティを「いいえ」に設定して、テンプレートファイル自身が更新されないようにします。

 

3. ExcelPOIOutput コンポーネントの「ファイル 3 パス」プロパティに、データ書き込み用Excelファイルへのパスを指定し、「ファイルを更新」プロパティを「いいえ」に設定する

4. Mapper コンポーネントのフィールド定義が設定されていることを確認し、コンポーネントアイコンをダブルクリックしてマッピングウィンドウを表示する

HINT
ExcelPOIOutput コンポーネントの 「ファイルを更新」プロパティ
「ファイルを更新」プロパティでは、ファイルパスで指定 したExcelファイルを更新するかどうかを指定します。「はい」(True)を指定すると、Excel ファイルは更新されます。「いいえ」(False)を指定した場合には更新は行われず、更新されたファイルイメージのみがストリームに出力されるので、更新された Excel ファイルは、FilePutコンポーネントで指定します。 

CAUTION
日付や数値のデータを出力する場合、ExcelPOIOutput コンポーネントのフィールド定義に加え、Excel側での表示形式の設定が必要になる場合もあります。

 

5. Excelデータの書き込み処理に合わせて、マッピングを指定する

 

6. フロー画面に戻り、FilePutコンポーネントの 「ファイルパス」プロパティに、書き込み先Excel ファイルのパスを指定する

フローを実行すると、FilePut コンポーネントの「ファイルパス」プロパティで指定した Excel ファイルの、指定した領域に、指定したデータが書き込まれます。

 

HINT
手順5では、入力側の 4つのフィールドをそのまま出力 側の4つのフィールドにマッピングしているほか、単一セルの「日付セル」には、マッパー関数の Now 関数を利用して、今日の日付を「yyyy/MM/dd」の形式で出力するように設定しています。

 

Excel のレコード領域に データを追加で書き込む

1. Excel ファイルへデータを書き込むフローを作成し、レコード領域やフィールドを指定して、ExcelPOIOutput コンポーネントの「ファイルパス」プロパティには、データ書き込み先の Excel ファイルへのパスを指定する

2. ExcelPOIOutputコンポーネントの「書出し処理」プロパティに「追加」を指定し、「ファイルを更新」プロパティは「はい」を指定する

 

HINT
ExcelPOIOutput コンポーネントの「書出し処理」プロパティで「追加」を指定すると、(キーを指定していない場合)レコード領域の最終空白行にレコードが追加されます。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
    キーワード:
他にご質問がございましたら、リクエストを送信してください

このセクションの記事

他のキーワードで検索する