Power Automate – zpracování CSV
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Autor: Martin Bradáč
Power Automate umí velmi snadno vytvářet CSV soubory. S jejich zpracováním je to ale už složitější. Typickou úlohou je automatizované uložení hodnot z CSV souboru do Sharepointového seznamu.
Na úvod se sluší upozornit na konektor Parse CSV, který by tuto úlohu zvládl velmi elegantně. Zásadní nevýhodou ovšem je, že patří k externím akcím a jeho využití podléhá licenční politice vývojáře. Zdarma je možné ho využít pouze 50x za měsíc. Pro někoho to může stačit, ale v případě, že budete chtít úlohu opakovat dvakrát denně, limit překročíte.
Vyjdeme z toho, že CSV soubor je text s hodnotami oddělenými oddělovačem. Nejčastěji to je čárka nebo středník. Co jeden řádek, to jeden záznam. Power Automate naštěstí disponuje celou řadou akcí a výrazů pro práci s textem a textovými proměnnými.
Předesílám, že následující postup je trochu pracný, ale funkční. Pro zjednodušení má náš vstupní soubor pouze dva sloupce – jméno a číslo:
- "Jan Novák";123456
"Pepa Vomáčka";456789
"Jarda Nepovím";789123
Tyto hodnoty budou uloženy do souboru v Sharepointové knihovně. A my je chceme zároveň uložit do Sharepointového seznamu se stejnou strukturou.
- Vytvoříme automatický tok se spouští „Když je ve složce vytvořen soubor.
- Nyní si deklarujeme proměnné. Do jedné uložíme obsah souboru, dvě typu integer nám pomohou při cyklickém zpracování textového souboru.
- prevIndex – integer, hodnota 0
- nextIndex – integer, hodnota 0
- hodnoty – string, hodnotou bude výraz Array(triggerOutputs()?['body']). Díky tomu dostaneme do proměnné obsah souboru včetně netisknutelnými znaky. Je to velmi důležité.
- Vytvoříme cyklus „Do until“.
- Na jeho začátku nastavíme hodnotu nextIndex – vyhledáme další výskyt konce řádku výrazem:
- @{indexOf(substring(variables('tmpString'),variables('prevIndex')),'\')}
Akcí substring získáme řetězec mezi konci řádku – tedy celý jeden záznam satrtovací pozice je previndex, délka nextindex.
Samostatné hodnoty pak získáme například výrazem substring a indexOf. Na konci cyklu zvýšíme hodnotu proměnné prevIndex.
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.