M365関連 技術

LogicAppsでCSVファイルを読み込む

CSVファイルをLogicAppで読み込もうとしたのですが、LogicAppsの既存アクションとして存在しておらず、四苦八苦しながら実装したのでメモとして残したいと思います
(MicrosoftさんはそろそろCSV読み込みをどの製品でも標準実装してほしい。。。)

CSVファイルを実際に読み込む

SharePoint上に配置されたCSVファイルを読み込む

今回はSharePointOnline上にあるCSVファイルを対象として読み込みを実施します
LogicAppsのSharePoinコネクタ内の「ファイル コンテンツの取得」を使用して対象CSVファイルを読み込みます

読み込むCSVファイルに日本語が含まれている場合

CSVファイル内に日本語が含まれる場合は、ファイルを保存する際に文字コードを「UTF8 BOM付(UTF8 with BOM)」でないと読み込んだ際に文字化けが発生します

読み込んだCSVファイルを使えるデータに変換する

次に読み込んだデータをLogicAppsのデータ操作機能の「作成」内でSplit関数を使用して
使えるように変換します

Split関数内は以下の内容にしています

split(base64ToString(outputs('ファイル_コンテンツの取得')?['body']?['$content']), decodeUriComponent('%0D%0A'))

・?['body']?['$content'] : SharePointコネクタで取得したファイル内容をすべて取得する

・%0D%0A : ANSIエンコードされたファイルでの改行コード

CSVファイルが読み込めましたが、末尾に不要な行が含まれています

末尾の不要な行を削除する

次に読み込んだデータをLogicAppsのデータ操作機能の「作成」内でTake関数を使用して
末尾の空行を削除します

Take関数内は以下です

take(outputs('CSVファイルを使用できるように修正'),add(length(outputs('CSVファイルを使用できるように修正')),-1))

末尾の空行を削除することができました

1行目を削除する

読み込んだデータをLogicAppsのデータ操作機能の「作成」内でSkip関数を使用して
1行目を削除します

Skip関数は以下です

skip(outputs('余分な最後の1行を削除する'),1)

最初の名称の一行を削除できました

最後に各列名を設定する

読み込んだデータをLogicAppsのデータ操作機能の「選択」を使用して各列名を設定します

Split関数内は以下です(末尾の数字は適宜変えてください)

split(item(),',')?[0]

各列名が付いた状態で値が保持されて、読み込んだCSVファイルデータを使用できるようになりました
ここまで手間をかけずに1アクションでCSVデータを使えるように早くしてもらいたいものです

-M365関連, 技術
-,