Power AutomateでSharePoint リスト(Microsoft Lists)から取得したデータを1レコードずつ整形してExcelに転記するフローの動作が遅いので解消したいとの質問がありました。
Power Automateには便利な「選択」アクションが用意されているので、こちらとOffice スクリプトを組み合わせることによって、必要な項目だけをExcelファイルに転記・整形することができます。
テスト用SharePoint リスト
今回使用するテスト用のリストは下図の通りで、「Title」列と「Memo」列をExcelファイルに転記します。
フローから渡されたデータをシートに書き込むスクリプト
次は使用するスクリプトです。
データに合わせて定義したinterfaceを配列として受け取って、セルに書き込むだけのシンプルなスクリプトです。
上記コードは単に値を書き込んでいるだけですが、必要に応じて整形・加工もできます。
SharePoint リストからExcelファイルに転記するフロー
次はSharePoint リストから必要な項目だけをExcelファイルに転記するPower Automateフローです。
フロー全体
複数の項目の取得
「複数の項目の取得」アクションで指定したSharePoint リストから項目を取得します。
今回はフィルター クエリで「startswith(Title, ‘テスト’)」と指定して、Title列が「テスト」から始まる項目のみを対象にしています。
選択
「複数の項目の取得」アクションでは様々なデータが結果として取得できますが、今回欲しいのは「Title」と「Memo」だけなので、「選択」アクションでTitleとMemoのみを選択します。
このアクションによって、下記のように必要な項目だけを配列として取得できます。
[ { "title": "テスト1", "memo": "なにぬねの\r\nたちつてと" }, { "title": "テスト2", "memo": "あいうえお\nかきくけこ" }, { "title": "テスト4", "memo": "あああああ\nいいいいい" } ]
スクリプトの実行
「スクリプトの実行」アクションで事前に用意したスクリプトを実行します。
このとき、スクリプトの引数として選択アクションの「出力」(アレイ全体の入力)を指定します。
実行結果
結果は下図の通りで、指定した項目のみをExcelに転記できました。
掛かった時間は下図の通りですが、スクリプトの処理方法を変えればもう少し速くなるだろうと思います。
この記事へのコメントはありません。