とりあえず動くPower Automate DeskTopを作成しました。
前回と同じように、
BBB,DDD,EEE,AAA,CCC
1, 2, 3, 4, 5
↓
AAA,BBB,CCC,DDD,EEE
4, 1, 5, 2, 3
というように列ごと入れ替えるスクリプトを Power Automate DeskTop で組んでみました。
フォルダ構成
デスクトップ
├ Input.txt
└ TargetCSV.csv
Power Automate DeskTopでソースコードの公開する都合上、入出力変数を使用しないようにするため、デスクトップにしています。
Input.txt
AAA
BBB
CCC
DDD
EEE
TargetCSV.csv
BBB,DDD,EEE,AAA,CCC
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
ソースコード
Folder.GetSpecialFolder SpecialFolder: Folder.SpecialFolder.DesktopDirectory SpecialFolderPath=> SpecialFolderPath
File.ReadTextFromFile.ReadTextAsList File: $'''%SpecialFolderPath%\\Input.txt''' Encoding: File.TextFileEncoding.UTF8 Contents=> FileContents
File.ReadFromCSVFile.ReadCSV CSVFile: $'''%SpecialFolderPath%\\TargetCSV.csv''' Encoding: File.CSVEncoding.UTF8 TrimFields: True FirstLineContainsColumnNames: False ColumnsSeparator: File.CSVColumnsSeparator.SystemDefault CSVTable=> CSVTable
LOOP LoopIndex FROM 0 TO FileContents.Count - 1 STEP 1
SET NewVar TO FileContents[LoopIndex]
LOOP LoopIndexCSV FROM 0 TO CSVTable.Columns.Count - 1 STEP 1
Variables.RetrieveDataTableColumnIntoList DataTable: CSVTable ColumnNameOrIndex: LoopIndexCSV ColumnAsList=> ColumnAsList
IF NewVar = ColumnAsList[0] THEN
IF LoopIndex = 0 THEN
SET CSVTable02 TO {ColumnAsList[:ColumnAsList.Count] }
ELSE
SET Data TO ColumnAsList[:ColumnAsList.Count]
SET CSVTable02 TO CSVTable02 + Data
END
EXIT LOOP
END
END
END
Variables.RetrieveDataTableColumnIntoList DataTable: CSVTable02 ColumnNameOrIndex: 0 ColumnAsList=> ColumnAsList2
SET CSVOutTable TO {ColumnAsList2 }
LOOP LoopIndex2 FROM 1 TO CSVTable02.Columns.Count - 1 STEP 1
Variables.RetrieveDataTableColumnIntoList DataTable: CSVTable02 ColumnNameOrIndex: LoopIndex2 ColumnAsList=> ColumnAsList3
SET CSVOutTable TO CSVOutTable + ColumnAsList3
END
File.WriteToCSVFile.WriteCSV VariableToWrite: CSVOutTable CSVFile: $'''%SpecialFolderPath%\\output02.csv''' CsvFileEncoding: File.CSVEncoding.UTF8 IncludeColumnNames: False IfFileExists: File.IfFileExists.Overwrite ColumnsSeparator: File.CSVColumnsSeparator.SystemDefault
上記ソースコードをPower Automate DeskTopに貼り付けることができます。
Power Automate DeskTop 画面
前半のLoopではInput.txtによる順番の入れ替えと行列が逆になったテーブルが作成されます。
AAA,1
BBB,2
…
といった出力になります。
後半のLoopでは行列を入れ替えています。
書籍紹介
Kindle Unlimitedで読める本があります。契約している人は試しに読んでみてはどうでしょうか・
RPA=業務自動化ツールの本命 Power Automate Desktop 実用一直線: すぐ使える実践的な例で、基本的な動作をていねいに解説 新品価格 |