この記事でわかること!
- Power Automate for desktop(PAD)でCSVファイルを読み込む方法がわかる。
- PADの「CSVを読み取ります」アクションの使い方がわかる。
- PADでCSVを読み込んだ時に文字化けしてしまった時の対処方法がわかる。
Power Automate for desktopでCSVファイルを読み込む。
Power Automate for desktop(PAD)でCSVファイルを読み込むのはメチャクチャ簡単です。「CSVファイルを読み取ります」アクションを使うだけです。
「CSVを読み取ります」アクションとは?
「CSVを読み取ります」アクション
- 「CSVを読み取ります」アクションは、Power Automate for desktopでCSVファイルを読み込むためのアクションです。
- 読み込んだデータはDatatable型の変数に格納されます。
- CSVの他にもTSVやスペース区切り形式のファイルも、このアクションを使って読み込むことができます。
フローの作成
まずは「CSVを読み取ります」アクションを使った簡単なフローを作ってみます。
フローの作成方法
▲今回読み取るCSVファイルです。データの中身の人名などは自動生成によるダミーデータです。
氏名,郵便番号,年齢,住所,ID,チェック 信田 芳彦,090-3725,46,三重県,8278,1 谷山 花穂,755-5043,49,徳島県,2606,0 岩淵 弥太郎,074-0036,48,佐賀県,1281,0 西野 貞,183-7239,31,東京都,7029,1 和泉 幸子,616-4758,27,群馬県,6262,1 河端 清美,498-8254,17,沖縄県,9091,1 上野 堅助,818-7813,45,和歌山県,202,1 松浦 和佳奈,557-5688,35,広島県,8078,0 岡元 三枝子,762-1983,60,高知県,546,1 常盤 武治,961-0340,41,高知県,2042,0
▲「ファイル」アクショングループの中にある「CSVを読み取ります」アクションを追加します。
▲パラメータを入力します。
パラメータ
- ファイルパス:C:\Users\user\Downloads\testdata.csv
- エンコード:UTF-8
- フィールドのトリミング:オン
- 最初の行に列名が含まれています:オン
- 区切り記号:システムの規定値
フローを実行してみます!
▲一度フローを実行して結果を見てみます。「CSVを読み取ります」アクションの結果はCSVTable変数に格納されます。フローデザイナー画面の右側のCSVTable変数をダブルクリックして中身を確認してみましょう。
▲CSVTable変数の中身です。文字化けにせずにデータがとれていたらOKです。文字化けしていたらエンコードを変更して調整してみてください。
CSVTable変数から値を1個取り出す
CSVTableから値を一個だけ取り出してみます。
▲わかりやすく「メッセージを表示」アクションを使って取り出した値を表示してみます。
▲パラメータは下記のように入力しました。CSVTable変数から値を取り出すにはカッコとインデックス番号を使って記述します。
パラメータ
- 表示するメッセージ:1行目のデータは、%CSVTable[0][0]%さんです。
1行目1列目のデータを取り出すには%CSVTable[0][0]%と書きます。詳しい書き方は後述します。
▲フローを実行すると上図のようにメッセージボックスが表示されます。CSVTableの1行目1列目のデータである氏名を取り出すことができました。
CSVTable変数から1行ずつ全行のデータを取り出す
1件分のデータが取得できたので、全件のデータをループで取り出してみましょう。
▲「For each」アクションを追加します。
▲「For each」アクションのパラメータを入力します。
For eachアクションのパラメータ
- 反復を行う値:%CSVTable%
▲「メッセージを表示」アクションを追加します。
▲「メッセージを表示」アクションのパラメータを下記のように入力します。
メッセージを表示アクションのパラメータ
- 反復を行う値:%CurrentItem%
▲フローを実行すると、行数の数だけメッセージボックスが上図のように表示されます。今回のデータは10件あるので10回です。1行分のデータをまるっと取得で来ていることがわかります。
▲特定の列だけ取得したい場合はインデックス番号を付けます。上図は%CurrentItem[0]%と指定した場合の出力です。
Robinソースコード
File.ReadFromCSVFile.ReadCSV CSVFile: $'''C:\\Users\\user\\Downloads\\testdata.csv''' Encoding: File.CSVEncoding.UTF8 TrimFields: True FirstLineContainsColumnNames: True ColumnsSeparator: File.CSVColumnsSeparator.SystemDefault CSVTable=> CSVTable Display.ShowMessageDialog.ShowMessage Message: $'''1行目のデータは、%CSVTable[0][0]%さんです。''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed LOOP FOREACH CurrentItem IN CSVTable Display.ShowMessageDialog.ShowMessage Message: CurrentItem Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed END
▲今回作成したフローのソースコードです。フローデザイナーにコピペするとフローを再現することができます。
CSVTable(Datatable変数)のデータの取り出し方
CSVTable(Datatable変数)からデータをひとつ取り出す方法
CSVTable変数はDatatable型の変数です。Datatable型変数は行と列で構成されたExcelのデータ構造のような変数です。
Datatable型変数にアクセスするときはCSVTable[行番号][列番号]のように指定します。行番号・列番号は0から数えます。ですので1行目3列目のデータを取り出すにはCSVTable[0][2]となります。
CSVTable(Datatable変数)からデータを行単位で取り出す方法
Datatable型変数から行単位でデータを取り出すにはCSVTable[行番号]のように行番号のインデックスだけし得値すればOKです。行番号は0から数えるので1行目はCSVTable[0]です。
全行を取得・評価するには上で作成したフローのようにFor eachアクションを使うとループ処理の中で1行ずつ取得できます。For eachが返してくれるCurrentItemという名前の変数はDatarow型の変数です。
Datatable型変数を使ったその他の記事
Datatable型変数はExcelの時にも登場しました。
Excelを読み込むアクションもDatatableとしてExcelを読み込むんでした。
Datatableについては、Excelを操作するフローのいくつかの記事でも詳しく解説しているのでそちらも参考になさってください。
「CSVを読み取ります」アクションのパラメータ
ファイルパス
CSVファイルのファイルパスを指定します。(パスとは?)
エンコード
文字コードです。どれを選択するかは扱うCSVファイルによります。CSVファイルに合った正しい文字コードを選択しましょう。異なる文字コードを選択すると文字化けしてしまうので注意してください。
文字コード
- UTF-8
- Unicode
- Unicode(ビッグエンディアン)
- UTF-8(バイトオーダーマークなし)
- Unicode(バイトオーダーマークなし)
- システムの規定値
どれを選択するべきかわからない場合は、システムの規定値か、現在最も使われているUTF-8をまずは試してみると良いかと思います。
フィールドのトリミング
各データの先頭・末尾にある空白を削除します。
最初の行に列名が含まれています
列名(ヘッダー)が含まれたCSVの場合、「最初の行に列名が含まれています」をオンにするとヘッダーとして使うことができます。ヘッダーのないCSVファイルの場合はオフにします。
▲「最初の行に列名が含まれています」をオンにするとCSVファイルの1行目のデータがヘッダーとして認識されます。
▲「最初の行に列名が含まれています」をオフにすると自動的にヘッダーが作成されます。もともとヘッダーを持つCSVファイルの場合はヘッダーもデータの一部として扱われます。
区切り記号
システムの規定値を選択すると、CSVのデフォルトである「カンマ」を区切り記号として認識します。
文字化けしてしまう。
CSVファイルを読み込んだ時に文字化けが起こってしまったにゃ・・・!
文字化けの原因はエンコードにあります。どれを選択するべきかわからない場合は、システムの規定値か、現在最も使われているUTF-8をまずは試してみて調整してください。
CSVファイルの書き込み
(準備中)
まとめ
PADでCSVファイルの読み込みについて学習しました。
このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。