I have an excel file that is emailed to me that I want to add into a SQL database. My issue is the excel file is not configured with a table. How can I get these rows into a table format using flow?
I see the create table function from excel but that creates and empty table with the column headings I choose. Is it possible to create the table with data?
I can get my whole process to work if I start with a file that has a table in it, but my emailed report is not possible to be created with the table from the source so I have to automate that somehow.
Solved! Go to Solution.
Hi @ArshUser,
Creating scripts is pretty easy (at least basic scripts are easy). You'll want to open your Excel file in the browser, you'll then see a tab in Excel for Automation. Click on this, then you can create a new script by recording your actions. After you've recorded your actions you are presented with some JS code, you can modify this if necessary or you can just save the script. Then in PA you can use the Run a Script action and select the Excel file you want to run the script on and which script you want to run.
Hey, thanks for the explanation! Sounds straightforward. I'll try it.
Hey @majorfriend,
I am facing one more issue regarding this.
So I need to use the dynamic content from the excel (which can be done only when it is in table form). But as you can see, I am not able to select a "Table" as it doesn't exist yet. Table will be created after the scrip is run.
How do I go about doing this? Any ideas?
Thanks in advance!
There's two things you can do here:
1. You can return dynamic content using a script. All you do is add `return whateverValueYouWant` to the end. The value can be basically any type you want. For example, if you return an array (like what the 'List rows from a table' connector does) then you can use it like an array in your Flow. This allows you to return dynamic content from non tables.
2. You can just input the name of the table in the Table drop down as a custom field.
Thanks @GeoffRen,
Option 1 could be helpful to me as I often run a script, then use Option 2 to list the rows in the table. Do you add 'return whateverValueYouWant' to the end of the JS in Excel? Could you post a screenshot of the code?
Hey @GeoffRen thanks for this!
I have been trying the 2nd solution but it gives out an error that the table doesn't exist.
Solution 1 works!
Here is a screenshot @majorfriend
@majorfriend Yup, you just add it to the end of the main function like @ArshUser did. You can return almost anything (as long as there is type information).
Says I dont have access
Thank you all for the wonderful discussion and so I came up with below script to be used in power automate. it first try to detect if table exist, if yes, just return the table name, if not, create a new table. Hope this helps.
function main(workbook: ExcelScript.Workbook) {
let targetTable = workbook.getTable("Table1");
if (!targetTable) {
let selectedSheet = workbook.getActiveWorksheet();
// Create a table with format on range A:T on selectedSheet
let table = workbook.addTable(selectedSheet.getRange("A:T"), true);
return table.getName()
} else {
return targetTable.getName()
}
}
I find you can just use the result from the script and you will have the table. like this,
@Anonymous @GeoffRen thanks so much for this info on Office Scripts. Very cool.
FWIW, I'd been trying to create a flow that runs a paginated report every morning, then sends the Excel output from that report *if there are any rows in the report output.* That last part was what I was stuck on, but now I have an Office Script that checks the range (in my case A2:J2) of a worksheet for empty rows. Basically, if that script returns 0, I know that the paginated report has output. If the script result = 0, I create a sharing link to the file and email that off to recipients. If the script result = 1, I delete the file.
Hello, I cannot find the tab for automate,
any help?
Hi, it's only available from Excel Online, not from desktop version. more detail: Office Scripts in Excel on the web - Office Scripts | Microsoft Docs
Thanks for reply
I already use Excel Online
But the automate tab seems like turned off
Any advice?
Read this section from the link I copied, see if that helps, otherwise I also have no idea, sorry.
Thanks @Anonymous !
I hoped this would be the solution for me (I have the exact same problem, I'm receiving an Excel file in SharePoint that has no table defined and that I need to be able to manipulate in PowerAutomate). But copying the script from comment #30 directly and running it in an open Excel workbook I get
Line 6: Workbook addTable: There was an internal error while processing the request.
I don't understand how this post can be marked "SOLVED" when none of the solutions actually work.
I also don't understand why PowerAutomate can't manipulate Excel documents without tables. Just allow us to specify a range of cells we want to capture as content. Come on!
FWIW, here's what my "empty rows" script looks like:
/*
This script counts the empty rows on a given worksheet, and can return them to a Power Automate Flow.
*/
function main(workbook: ExcelScript.Workbook, sheetName:string = 'YOUR WORKBOOK NAME HERE'): number {
// Get the worksheet named "YOUR WORKBOOK NAME".
const sheet = workbook.getWorksheet(sheetName);
// Get the entire data range.
const range = sheet.getRange("A2:J2");
// If the used range is empty, end the script.
if (!range) {
console.log(`No data on this sheet.`);
return;
}
// Log the address of the used range.
console.log(`Used range for the worksheet: ${range.getAddress()}`);
// Look through the values in the range for blank rows.
const values = range.getValues();
let emptyRows = 0;
for (let row of values) {
let emptyRow = true;
// Look at every cell in the row for one with a value.
for (let cell of row) {
if (cell.toString().length > 0) {
emptyRow = false
}
}
// If no cell had a value, the row is empty.
if (emptyRow) {
emptyRows++;
}
}
// Log the number of empty rows.
console.log(`Total empty rows: ${emptyRows}`);
// Return the number of empty rows for use in a Power Automate flow.
return emptyRows;
}
If you just want to manipulate non table data, you can use Office Scripts directly on those ranges like so
function main(workbook: ExcelScript.Workbook) {
// Replace 'Sheet1' with your sheet name
// Replace 'A1' with the range you want to manipulate
const range = workbook.getWorksheet('Sheet1').getRange('A1');
// Logs the range values out to the console for debugging
console.log(range.getValues());
// Returns the range values to Power Automate for use in additional actions
return range.getValues();
}
Join us for an in-depth look into the latest updates across Microsoft Dynamics 365 and Microsoft Power Platform that are helping businesses overcome their biggest challenges today. Find out about new features, capabilities, and best practices for connecting data to deliver exceptional customer experiences, collaborating, and creating using AI-powered capabilities, driving productivity with automation—and building towards future growth with today’s leading technology. Microsoft leaders and experts will guide you through the full 2023 release wave 1 and how these advancements will help you: Expand visibility, reduce time, and enhance creativity in your departments and teams with unified, AI-powered capabilities.Empower your employees to focus on revenue-generating tasks while automating repetitive tasks.Connect people, data, and processes across your organization with modern collaboration tools.Innovate without limits using the latest in low-code development, including new GPT-powered capabilities. Click Here to Register Today!
Episode Five of Power Platform Connections sees David Warner and Hugo Bernier talk to Vice President of Power Automate, Stephen Siciliano, alongside the latest news, product reviews, and community blogs. Use the hashtag #PowerPlatformConnects on social media for a chance to have your work featured on the show! Show schedule in this episode: 0:00 Cold Open 0:34 Show Intro 01:09 Stephen Siciliano Interview 30:42 Blogs & Articles 31:06 PnP Weekly Ep 200 32:51 SharePoint Custom Form Backup 33:38 Power Apps Extreme Makeover 34:56 ChatGPT Control 35:35 Color Data 37:17 Top 7 Features on Dynamics 365 2023 Release Wave 1 38:30 Outro & Bloopers Check out the blogs and articles featured in this week’s episode: https://pnp.github.io/blog/microsoft-365-pnp-weekly/episode-200/ (no tags) https://grazfuchs.net/post/sharepoint-customform-backup/ @Maximilian Müllerhttps://www.fromzerotoheroes.com/ @Kristine Kolodziejski https://github.com/Power-Maverick/PCF-Controls/tree/master/ChatGPTControl @DanzMaverick https://yerawizardcat.com/color/ @CatSchneider https://events.powercommunity.com/dynamics-power-israel/ @VictorDantas Action requested: Feel free to provide feedback on how we can make our community more inclusive and diverse. This episode premiered live on our YouTube at 12pm PST on Thursday, 16th March 2023. Video series available at Power Platform Community YouTube channel. Upcoming events: Business Applications Launch – April 4th – Free and Virtual! M365 Conference - May 1-5th - Las Vegas Power Apps Developers Summit – May 19-20th - London European Power Platform conference – Jun. 20-22nd - Dublin Microsoft Power Platform Conference – Oct. 3-5th - Las Vegas Join our Communities: Power Apps Community Power Automate Community Power Virtual Agents Community Power Pages Community If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for the Power Platform Connections team, please let us know. We will do our best to address all your requests or questions.
We are excited to share the ‘Power Platform Communities Front Door’ experience with you! Front Door brings together content from all the Power Platform communities into a single place for our community members, customers and low-code, no-code enthusiasts to learn, share and engage with peers, advocates, community program managers and our product team members. There are a host of features and new capabilities now available on Power Platform Communities Front Door to make content more discoverable for all power product community users which includes ForumsUser GroupsEventsCommunity highlightsCommunity by numbersLinks to all communities Users can see top discussions from across all the Power Platform communities and easily navigate to the latest or trending posts for further interaction. Additionally, they can filter to individual products as well. Users can filter and browse the user group events from all power platform products with feature parity to existing community user group experience and added filtering capabilities. Users can now explore user groups on the Power Platform Front Door landing page with capability to view all products in Power Platform. Explore Power Platform Communities Front Door today. Visit Power Platform Community Front door to easily navigate to the different product communities, view a roll up of user groups, events and forums.
We are so excited to see you for the Microsoft Power Platform Conference in Las Vegas October 3-5 2023! But first, let's take a look back at some fun moments and the best community in tech from MPPC 2022 in Orlando, Florida. Featuring guest speakers such as Charles Lamanna, Heather Cook, Julie Strauss, Nirav Shah, Ryan Cunningham, Sangya Singh, Stephen Siciliano, Hugo Bernier and many more. Register today: https://www.powerplatformconf.com/
Super Users – 2023 Season 1 We are excited to kick off the Power Users Super User Program for 2023 - Season 1. The Power Platform Super Users have done an amazing job in keeping the Power Platform communities helpful, accurate and responsive. We would like to send these amazing folks a big THANK YOU for their efforts. Super User Season 1 | Contributions July 1, 2022 – December 31, 2022 Super User Season 2 | Contributions January 1, 2023 – June 30, 2023 Curious what a Super User is? Super Users are especially active community members who are eager to help others with their community questions. There are 2 Super User seasons in a year, and we monitor the community for new potential Super Users at the end of each season. Super Users are recognized in the community with both a rank name and icon next to their username, and a seasonal badge on their profile. Power Apps Power Automate Power Virtual Agents Power Pages Pstork1* Pstork1* Pstork1* OliverRodrigues BCBuizer Expiscornovus* Expiscornovus* ragavanrajan AhmedSalih grantjenkins renatoromao Mira_Ghaly* Mira_Ghaly* Sundeep_Malik* Sundeep_Malik* SudeepGhatakNZ* SudeepGhatakNZ* StretchFredrik* StretchFredrik* 365-Assist* 365-Assist* cha_cha ekarim2020 timl Hardesh15 iAm_ManCat annajhaveri SebS Rhiassuring LaurensM abm TheRobRush Ankesh_49 WiZey lbendlin Nogueira1306 Kaif_Siddique victorcp RobElliott dpoggemann srduval SBax CFernandes Roverandom schwibach Akser CraigStewart PowerRanger MichaelAnnis subsguts David_MA EricRegnier edgonzales zmansuri GeorgiosG ChrisPiasecki ryule AmDev fchopo phipps0218 tom_riha theapurva Akash17 BCLS776 rampprakash Rusk cchannon a33ik AaronKnox Matren Alex_10 Jeff_Thorpe poweractivate Ramole DianaBirkelbach DavidZoon AJ_Z PriyankaGeethik BrianS StalinPonnusamy HamidBee CNT Anonymous_Hippo Anchov KeithAtherton alaabitar Tolu_Victor KRider sperry1625 IPC_ahaas If an * is at the end of a user's name this means they are a Multi Super User, in more than one community. Please note this is not the final list, as we are pending a few acceptances. Once they are received the list will be updated.
User | Count |
---|---|
89 | |
37 | |
26 | |
13 | |
12 |
User | Count |
---|---|
127 | |
54 | |
37 | |
26 | |
21 |