今回はPower AutomateでExcelファイルに含まれるテーブルのデータをCSVファイルに出力するする方法ついてお届けします。
本記事では、Power Automateのクラウドフローを使用してExcelファイルに含まれるテーブルのデータをCSVファイルに出力する方法を確認してみます。
Power Automateでは、フローを作成する際にMicorosoft 365や他のSaaSなどと接続して処理を実行するための「コネクタ」が提供されています。
今回はOneDrive for Bussinessに保存しているExcelファイルを扱うので、「Excel Online (Business)」コネクタを使用します。
こちらのコネクタでは以下のようなアクションを実行することができます。
- ワークシートの操作
- ワークシートの取得
- ワークシートの作成
- テーブルの操作
- テーブルの取得
- テーブルの作成
- テーブルに存在する行を一覧表示
- テーブルに行を追加
- テーブルにキー列を追加
- 行の取得、更新、削除
使用するExcelファイル
以下のようなテーブルが追加されているExcelファイルを使用します。
フローの概要
今回作成するフローの全体は以下のようになります。
- 手動でフローをトリガーします
- 作成したフローを手動で実行します
- 表内に存在する行を一覧表示
- OneDrive for Bussinessに保存しているExcelファイルからテーブル内のデータを取得します
- CSVテーブルの作成
- テーブルから取得したデータをCSV形式に変換します
- ファイルの作成
- OneDrive for BussinessにCSVファイルを保存します
今回は作成したフローを簡単にテストするために、フローを起動するためのトリガーとして「手動でフローをトリガーします」を設定しています。実際に業務で使用する場合は、OneDriveやSharePointにExcelファイルを作成または更新した際にフローを起動するなど、用途に合わせてトリガーを選択する必要があります。
フローを作成する
Power Automateの左のメニューから[作成]を選択し、[インスタント クラウド フロー]を選択します。
フロー名は「ExcelToCsv」を設定し、「フローを手動でトリガーする」を選択して[作成]をクリックします。
[新しいステップ]をクリックして、「Excel Online (Bussiness)」を選択します。
アクションは「表内に存在する行を一覧表示」を選択します。
アクションの詳細を設定します。前述のとおりOneDrive for Bussinessに保存したExcelファイルの内容を設定します。
[新しいステップ]をクリックして、「データ操作」から「CSV テーブルの作成」を選択します。
「開始」に前のアクションから「Value」を設定します。
[保存]をクリックしてここまでの作業を保存します。右上の[テスト]をクリックして、この時点で一度データがCSV形式に変換されているか確認してみます。
テストの結果を確認してみると、テーブルに含まれるデータ以外の不要な要素として、「@odata.etag」と「ItemInternalId」が追加されていることが確認できます。
この2つの不要な要素を削除するために「CSV テーブルの作成」を修正します。このアクションの[詳細オプションを表示する]をクリックすると「列」が「自動」に設定されています。
こちらを「カスタム」に変更してCSVに変換する列を設定します。
再度[保存]をクリックしてからテストしてみます。先ほどは含まれていた「@odata.etag」と「ItemInternalId」が取り除かれており、テーブルのデータだけが変換されていることが確認できます。
最後にOneDrive for Bussinessにファイルを保存するアクションを追加します。[新しいステップ]をクリックして、「OneDrive for Bussiness」から「ファイルの作成」を選択します。
「フォルダーのパス」と「ファイル名」には、CSVファイルをOneDrive for Bussinessに保存する際のフォルダのパスとファイル名を設定します。「ファイル コンテンツ」には「CSV テーブルの作成」の結果である「出力」を設定します。
確認してみる
ここまででフローの作成は完了です。最後に[保存]をクリックしてからテストしてみます。以下のようにOneDrive for BussinessにCSVファイル「result.csv」が作成され、データも正しく変換されていることが確認できます。
さいごに
今回はPower AutomateのExcel Onlineコネクタを使用してExcelファイルに含まれるテーブルのデータをCSVファイルに出力する方法確認してみました。
このコネクタではテーブルのデータのみを操作することが可能ですが、そもそもテーブルが含まれていないワークシートを他のファイル形式に変換したり、グラフや図形を追加するなど、既存のコネクタの機能では対応していない、より複雑なExcel操作の機能が必要なケースではカスタムコネクタを作成してグレープシティが提供するDioDocs for Excelが活躍します。
「どのような機能が使えるの?」と気になった方はこちらもご覧いただければと思います。