本記事では、Power AppsとPower Automateを用いて、Power Apps上のデータソースをOneDriveにCSV出力する方法をご紹介させていただきたいと思います。ただこちらの方法は、少し力技なところもありますのであくまでも方法の1つとして見ていただければ幸いです。
実行の流れ
この方法の大まかな流れとしましては、以下のようになります。
- Power Apps上で読み込んだデータソースをCSV出力のために適当な形式にする
- 成形したデータをPower AppsからPower Automateに渡す
- Power Automateでファイルを作成
それでは、以下に実装手順を示させていただきます。
実装手順1
まずPower Appsに適当なデータソースを用意します。以下の画像にあるデータテーブルはClearCollect関数で事前に作成しておいたデータになります。
ClearCollect(CollectValue,
{Sample1:"Sample1_1",Sample2:"Sample2_1",Sample3:"Sample3_1"},
{Sample1:"Sample1_2",Sample2:"Sample2_2",Sample3:"Sample3_2"},
{Sample1:"Sample1_3",Sample2:"Sample2_3",Sample3:"Sample3_3"},
{Sample1:"Sample1_4",Sample2:"Sample2_4",Sample3:"Sample3_4"},
{Sample1:"Sample1_5",Sample2:"Sample2_5",Sample3:"Sample3_5"});
次にボタンを1つ設置し、以下の式をボタンのOnSelect関数に設定します。
Set(CsvValue,Concat(CollectValue,Sample1&","&Sample2&","&Sample3&Char(13)));
このOnSelectでは、実際のCSVファイルの中身を作成し保存しています。式にあるConcat関数はデータソース内のすべての要素と個々の文字列を1つに結合することが可能となる関数です。今回はこの関数を利用し、データソースの要素をカンマ区切りで並べ最後に改行することでCSVの形式を作るようにしています。実際に作成した中身は次のPower Appsの画像にある通りです。
実装手順2
次にファイルを作成するためのAutomateを作成します。フローの全体図は以下の画像の通りです。
トリガーをPower Appsにしたいので、Power Automateのトップ画面から「作成」⇒「インスタントクラウドフロー」⇒「Power Apps」でフローを作成していきます。
その後、作成するCSVファイルをOneDriveに保存するため、新しいステップにOneDriveの「ファイルの作成」アクションを追加します。
このアクションではファイルを保存するフォルダーのパス、ファイル名、ファイルコンテンツを設定する必要があります。フォルダーのパスは任意のものを選ぶのですが、ファイル名、ファイルコンテンツに関してはPower Appsから取得できるようにしたいので、各タブの「動的なコンテンツの追加」から「Power Appsで確認」を選択します。
この時、ファイルをCSVとして保存するためにファイル名に.csvの拡張子をつけておきます。
これでPowerApps側から値を渡すことが可能となります。
実装手順3
最後に、もう一度Power Appsに戻り、Automateに値を渡して実行させるためのボタンを作成します。
まずボタンを追加し、Power Apps上部バーの「アクション」⇒「Power Automate」を選択します。そうするとそのボタンに関連付けたいAutomateを選択する画面が出てきますので、実装手順2で作成したフローを選択します。
これによりOnSelect関数にAutomateを走らせるための式が追加されますので、式に必要な値を設定します。今回渡す値は1つ目がファイル名、2つ目がファイルの中身なので以下のような式になりました。
'Test-3'.Run( "ファイル名", CsvValue);
あとはこのボタンを押せばCSVファイルがOneDriveに出力されます。以下が実際に出力されたCSVファイルの中身になります。
まとめ
以上が、今回紹介させていただいたPower AppsのデータソースをOneDriveにCSV出力する方法となります。
ここまで読んでいただき、ありがとうございました。