ルドルフもわたるふもいろいろあってな

Microsoft 365、Power Platform、PowerShellについて調べたことや検証したことなどを投稿します。技術の話は面白い。

【概要編】Power Automate でCSVのデータを配列に変換する(+ SharePointリストにアイテムとして投稿する)

今回は汎用的に使える手法の話です。

Power Automate を使ってCSVの中身を配列に変換します。また、この手法を利用したサンプルフローとしてCSVから読み込んだデータをSharePointリストにアイテムとして登録するフローを作りました。

このフローをGitHubで公開しました。下記リンク先からダウンロードしてください。
github.com

この手法を作った背景

Excelのシートにあるテーブルからデータを取得するのと同じように、CSVのデータからデータを取得たいと考えてフローでの実現方法を調べました。これが意外と難しいことがわかりました。
コネクタを検索したところ、目的にあうものは見つかったものの有償ライセンスが必要なものしかありませんでした。

無料で使えるアクションの範囲でCSVを扱う汎用的な手法を確立したいと考えて作成したのが今回の手法です。

この手法で実現すること

CSVに記載されているテキストを汎用的に使いやすい形に変換します。

例としてこんなCSVがあるとします。書籍の情報を表す一覧データです。

このCSVテキストエディタで開いたものがこちらです。
・区切り文字はカンマである
・列名と値がそれぞれダブルクォーテーションで囲まれている
・値の一部に区切り文字ではないカンマが含まれている

今回のフローを実行することでこのCSVデータが下図の配列に変換されます。
この配列はApply to each (繰り返し処理)を通すとループ1回でCSVの1行分を処理することができます。また、簡易版JSON Dictionary の形式になっているため、列名をKeyとしてValueを呼び出すことができます。

使用イメージ

所定のSharePointサイトのライブラリにCSVファイルをアップロードします。サンプルのフローではこれをトリガーにしています。

フローが実行されるとCSVの中身が配列として読み込まれます。このサンプルのフローではその配列をSharePointリストにアイテムとして登録します。

フロー図

アクションの設定を閉じた状態のフロー図

赤枠部分が「CSVのデータを配列にする処理」です。
他のフローでの流用・応用がしやすいように1ステップが1アクションになるようにしています。場面に応じて組み替えたり、少ないアクション数にまとめたりしてください。

開いた状態のフロー図


ステップごとの解説は解説編で行います。

ステップごとの解説は解説編で触れます。

要望によっては応用編も投稿したいと考えています。要望あればTwitterなり、ましゅまろなりでコメントください。

今回は以上です。

追記:解説編その1を投稿しました。

wataruf.hatenablog.com