Quickly & Easily Convert Various CSVs to New Excel Tables
Takes in most types of CSV data, dynamically identifies the header names, and creates an Excel table in a new or existing workbook.
No premium, 3rd party, or Office Script actions required. Only standard connectors.
(Works on comma-separated files where any items with in-data commas are surrounded in double quotes “String1, String2” but comma separated arrays with double quotes inside an item may also cause issues.)
For example, here is a CSV I downloaded from a random SharePoint list:
And I did not create any template doc table, & I did not adjust any names. I just selected the CSV file in my OneDrive, then ran the flow to get this output...
(But if you’re just downloading this template, then you will need to change the “Create table” action document library reference to your OneDrive folder instead of the id that is in there by default)
If needed, you should also be able to dynamically change the destination Excel to an existing workbook & worksheet based on other values in your flow. And the CSV data can automatically come from any preceding actions.
If you use something other than the default OneDrive action to get your CSV data, then add the CSV output to the "CSV_Data" field in the "Compose CSV data + Set-up" action.
If your CSV header row with column names is not the 1st row in your CSV, make sure to adjust the "ColumnNamesRow" value in the "Compose CSV data + Set-up" action to match the correct CSV row number.
This template is really just a combination of...
-The CSV to Dataset template with manual column mapping: https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/CSV-to-Dataset/td-p/1508191
-@RezaDorrani's video on exporting data to an Excel table: https://youtu.be/Kupz71dWYyY
-@Paulie78's video on fast exporting to an Excel table: https://youtu.be/AA-D4lgjR3o
Please 1st try downloading the below zip file & importing the whole flow as described in this post: https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/CSV-To-New-Excel-Table/m-p/1891765/highl...
If the standard zip file import method does not work for you, then you can try an alternative Power Apps Solution import method here: Re: CSV To New Excel Table - Page 15 - Power Platform Community (microsoft.com)
Or an alternative clipboard copy & paste import method from these 3 posts
https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/CSV-To-New-Excel-Table/m-p/1841481/highl...
https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/CSV-To-New-Excel-Table/m-p/1841499/highl...
https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/CSV-To-New-Excel-Table/m-p/1841504/highl...
https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/CSV-To-New-Excel-Table/m-p/1843986/highl...
Warning. The Groups HTTP connector with access to the graph API calls used for this template may be removed soon. You can vote to ask for this not to be removed here: https://ideas.powerautomate.com/d365community/idea/d51463df-6f0c-ed11-a81b-6045bd7c3e3f
You can also try using a different premium HTTP action to make that final call, like what Matt does here: https://www.matthewdevaney.com/quickly-add-multiple-rows-to-excel-table-in-power-automate/
Version 1.1 of the template flow does just this & uses the PREMIUM Azure HTTP action.
To set up the Azure HTTP action connection, use https://graph.microsoft.com for the url & for the Resource URI:
Thanks for any feedback!
Blank Base64 Excel File to paste into the "Base64BlankExcel" action (Paste directly into the input of the Compose action, do not paste to the expression tab)
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
Code & expression to paste into the single-textbox Map input of the "Select Reformat file data, replace in-data commas" action (PASTE DIRECTLY INTO THE MAP INPUT, DO NOT PASTE INTO THE EXPRESSIONS TAB)
[
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[0]), '',
replace(
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[0], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[0], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[0], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[0]),
',#_5#', ''))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[1]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[1], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[1], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[1], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[1]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[1])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[2]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[2], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[2], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[2], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[2]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[2])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[3]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[3], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[3], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[3], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[3]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[3])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[4]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[4], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[4], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[4], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[4]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[4])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[5]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[5], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[5], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[5], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[5]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[5])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[6]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[6], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[6], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[6], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[6]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[6])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[7]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[7], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[7], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[7], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[7]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[7])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[8]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[8], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[8], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[8], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[8]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[8])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[9]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[9], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[9], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[9], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[9]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[9])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[10]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[10], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[10], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[10], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[10]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[10])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[11]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[11], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[11], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[11], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[11]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[11])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[12]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[12], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[12], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[12], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[12]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[12])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[13]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[13], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[13], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[13], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[13]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[13])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[14]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[14], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[14], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[14], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[14]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[14])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[15]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[15], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[15], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[15], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[15]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[15])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[16]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[16], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[16], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[16], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[16]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[16])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[17]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[17], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[17], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[17], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[17]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[17])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[18]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[18], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[18], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[18], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[18]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[18])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[19]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[19], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[19], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[19], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[19]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[19])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[20]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[20], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[20], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[20], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[20]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[20])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[21]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[21], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[21], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[21], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[21]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[21])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[22]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[22], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[22], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[22], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[22]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[22])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[23]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[23], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[23], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[23], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[23]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[23])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[24]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[24], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[24], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[24], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[24]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[24])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[25]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[25], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[25], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[25], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[25]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[25])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[26]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[26], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[26], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[26], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[26]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[26])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[27]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[27], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[27], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[27], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[27]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[27])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[28]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[28], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[28], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[28], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[28]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[28])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[29]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[29], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[29], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[29], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[29]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[29])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[30]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[30], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[30], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[30], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[30]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[30])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[31]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[31], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[31], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[31], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[31]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[31])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[32]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[32], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[32], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[32], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[32]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[32])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[33]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[33], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[33], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[33], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[33]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[33])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[34]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[34], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[34], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[34], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[34]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[34])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[35]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[35], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[35], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[35], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[35]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[35])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[36]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[36], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[36], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[36], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[36]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[36])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[37]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[37], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[37], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[37], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[37]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[37])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[38]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[38], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[38], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[38], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[38]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[38])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[39]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[39], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[39], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[39], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[39]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[39])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[40]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[40], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[40], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[40], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[40]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[40])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[41]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[41], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[41], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[41], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[41]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[41])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[42]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[42], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[42], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[42], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[42]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[42])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[43]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[43], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[43], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[43], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[43]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[43])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[44]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[44], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[44], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[44], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[44]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[44])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[45]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[45], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[45], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[45], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[45]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[45])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[46]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[46], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[46], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[46], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[46]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[46])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[47]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[47], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[47], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[47], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[47]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[47])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[48]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[48], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[48], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[48], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[48]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[48])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[49]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[49], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[49], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[49], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[49]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[49])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[50]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[50], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[50], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[50], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[50]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[50])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[51]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[51], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[51], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[51], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[51]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[51])))},
@{if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[52]), '',
if(contains(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[52], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']),
concat(concat(concat(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[52], outputs('Compose_CSV_data_+_Set-up')['CommaQuote'])?[0], ','), replace(join(skip(split(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[52], outputs('Compose_CSV_data_+_Set-up')['CommaQuote']), 1), ',"'), ',', '###')), ','),
if(empty(split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[52]), '',
split(item(), outputs('Compose_CSV_data_+_Set-up')['QuoteComma'])?[52])))}
]
Expression to input in the single textbox Map input of the "Select Reformat" action (Paste in the expressions tab)
replace(
replace(
replace(
replace(
replace(
if(and(contains(join(item(), ''), '['), contains(join(item(), ''), ']')),
replace(replace(replace(
if(equals(last(join(item(), '')), '"'), take(join(item(), ''), sub(length(join(item(), '')), 1)), join(item(), '')), '",,"', '"###"'), '[""', '["'), '""]', '"]'),
if(equals(last(join(item(), '')), '"'), take(join(item(), ''), sub(length(join(item(), '')), 1)), join(item(), ''))),
outputs('Compose_CSV_data_+_Set-up')['InDataLineBreakToReplace'], outputs('Compose_CSV_data_+_Set-up')['InDataLineBreakReplacement']),
',', outputs('Compose_CSV_data_+_Set-up')['NewDelimiter']),
'###', ','),
concat(outputs('Compose_CSV_data_+_Set-up')['NewDelimiter'], '",', outputs('Compose_CSV_data_+_Set-up')['NewDelimiter']), concat(outputs('Compose_CSV_data_+_Set-up')['NewDelimiter'], outputs('Compose_CSV_data_+_Set-up')['NewDelimiter'])),
'""', '"')
Although legacy import successfully loaded the flow, I still hoped to see the select action contents, but the all show {
"": ""
}, and pasting the quoted text did not actually help. I want to create new excel files off of a non-blank template, including lambdas in name manager. Is this possible with base-64?
I see that issue with the main "Select Reformat file data, replace in-data commas" action still not transforming the text to expressions. But I found another way to get it to work...
Go to the multi-box table view & paste the text into the 1st box there. Then click the map button on the right again twice to get the expressions to appear.
Now you can select all the correctly formatted expressions, click the map button again to go back to the single text-box view, and copy & paste the correctly formatted expressions in the single textbox there.
Also @jaeiow,
If you want to set it to use a different template than the default blank document base64, you can go to this site to upload whatever template you want & get the Encoded Base64. Then just put that Base64 in the "Base64BlankExcel" action instead.
https://base64.guru/converter/encode/file
Very good. Now to figure out how to dynamically stack the columns (based on their dynamic headers), into one master table. I know that, with Excel. cross-workbook referencing isn't ideal. So I would make every new csv a new sheet (in an existing workbook) and stack these in a master, like so (https://techcommunity.microsoft.com/t5/excel/stacking-the-beatles-in-excel-an-exercise-in-3d-stackin...). There may be some logic that I can pull from the spreadsheets to do that. I think that a for a CSV to Excel, adding a Master would be a good addition to the solution. Just my thoughts on the matter. It appears complex and there are other ways (I see Power Query and Dataverse as competing for this, but only in the large scale where performance matters).
When bringing in all the outputs, simplicity is crucial. Used to be that we would "repeat with each, add to list", but now we want a more dynamic list that brings it all together.
I think to do all that automatically would require some more complex Office Scripts logic triggered on the file whenever a new sheet or table is added.
After triggering on the data add, it would have to grab the new table headers, compare them to the existing master headers (& it would be much more complex if headers could have close, but not exact matching names), then add new master columns for each new header not found, then add each cell of data of each line to the master table based on the cell header name.
It’s quite a custom build & ask. I don’t think I’d include it as a default template here.
And unfortunately I don’t think I’ll have the time to build something like that for a one-off request anytime soon.
But if you are worried about performance when transferring data between sources/tables & other Excel tables, then this Excel batch update & create may give you some ideas…
Well it seems that formula-based stacking is more than able. I think Office Scripts has some merits, as do Power Queries. When we put this in disparate files, it makes in less than ideal for shaping the data. I might question the utility of converting a csv to excel files in the first place. But, now I have a formula working. I was wondering with the flow how to implement a static 3d referencing. Probably could use an office script to update a named function to include the latest table.
= HSTACK(
Table20221027202422[#All],
Table202210...[#All],
Table202210...[#All],
Table202210...[#All],
...[#All])
);
Or could use the built-in 3d referencing in Excel, but I am less sure about adding new sheets dynamically, and that doesn't use tables, only ranges (e.g.
HSTACK(Sheet1:Sheet2!$A$1:$N$16)
). I think we can keep adding tables until it gets significantly slow*. I looked at your office scripts. In my case I am going to be using with https://learn.microsoft.com/en-us/office/dev/scripts/tutorials/excel-power-automate-trigger.
With Excel formulas, I usually see it get slower as more data appears. For reference, this is the formula for the stacking, specific to my scenario of an unpivot.
=LET(ColumnsIndexTxafter, TEXTAFTER(TAKE(Files3d,1),"Column"),
TakeFirstRowTxEven, FILTER(TAKE(DROP(Files3d,1), 1), ISEVEN(ColumnsIndexTxafter)),
DataRowsTxOdd, CHOOSECOLS(DROP(Files3d,1),
1--FILTER(ColumnsIndexTxafter, ISODD(ColumnsIndexTxafter))),
in, VSTACK(TakeFirstRowTxEven,
DataRowsTxOdd),
headers, {"Title","Create Date","Project Type","Site Name","Region","Location",""},
arr, HSTACK(in),
stacked, DROP(REDUCE("",headers,LAMBDA(a,i, HSTACK(a,TOCOL(FILTER(DROP(arr,1),INDEX(arr,1,)=i,""), 0,1)))),,1),
VSTACK(headers,FILTER(stacked,CHOOSECOLS(stacked,1)<>0,""))
)
Combining too much in a template is going to be difficult and pretty custom, but I though I would share in-case.
Hi @takolota - I am getting my CSV content from a folder and using (when a file is created trigger). I followed your steps for "add the CSV output to the "CSV_Data" field in the "Compose CSV data + Set-up" action". I am getting a "Tokenization is skipped for long lines for performance reasons" error along with this message: InvalidWorkflowOperationParametersRuntimeValue. The 'inputs.parameters' of workflow operation 'Get_file_content' of type 'OpenApiConnection' is not valid. Error details: The parameter 'id' could not be URI encoded. It may be too long or have an invalid sequence. Did I miss a step?
@feliciauop If I understand correctly you’re getting the file content from your trigger action. In that case you probably left the OneDrive Get file action with the default value that will error because nothing is selected.
If you already have the file content without the Get file action, then you can just delete it.
@takolota Sorry this is my first time ever using Power Automate. I don't understand what that means. Here's a screenshot of my flow.
Thanks!