cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
admiralman
Helper I
Helper I

Create Table Excel

I have tried to create a flow that triggers when an email with an attachment is received. It then downloads the attachment to OneDrive to a file named Employees.xlsx. This portion of the flow works perfectly. I need to read the data within the Excel file to post it to an SP list. Since Get Rows is deprecated and my file does not have a table I need to use the Create Table with Excel Online Business. I have tried this within one flow with a delay of 5 minutes between the Create File and the Create Table actions and receive the following error from the Create Table action:

 

{
"status": 404,
"message": "The resource could not be found.\r\nclientRequestId: 6ff46304-d3ee-42bd-82fa-321f945df761\r\nserviceRequestId: 7a4c1f71-1a47-4a7a-bfd0-314913ff208c",
"source": "excelonline-ncus.azconn-ncus.p.azurewebsites.net"
}

 

I have tried to set this up as two flows with the first getting the attachment from the email and saving and the second triggered by a new file creation. The second then tries the Create Table with a delay of 5 minutes before hand with the same issue. I have scoured the forums and the internet and this seems like a common problem along with file locking issues. Is MS Flow just not mature enough yet to handle an operation of this sort? I have seen one implementation that utilizes the Graph but if I have to go that route I would pursue other options and eliminated the reliability issues of Flow altogether. Any direction would be appreciated. Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions

Ok, so the issue is creating a table in the existing Excel document in the first Flow... I have just updated my previous example which has worked fine:

1.PNG

 The Flow run:

1.PNG

 

The resulting file:

1.PNG

 

So this should cover your requirements for Flow 1:

1. Save the file

2. Create the table

Set Flow 2 to be triggered by an update to the File (You may need to add logic for recursive events):

1. Get the Data

2. Add the data to the excel document

 

HTH

Jay

View solution in original post

21 REPLIES 21
Jay-Encodian
Community Champion
Community Champion

Hi @admiralman 

Can you please share screen shots of your Flow configuration, specifically the 'Create File and 'Create Table' actions?

The following Flow worked fine for me... you'd just need to add configuration to do something with the data obtained from the Excel file:

1.png

I used the following expression to name the file:

concat(utcNow(),'.xlsx')
NOTE: This Flow would also required some conditional logic to ensure the Flow only ran under specific circumstances to prevent failures for multiple attachments, etc.

HTH

Jay

-------------------------------------------------------------------------

If I have answered your question, please mark your post as Solved.

If you like my response, please give it a Thumbs Up

 

Thanks @Jay-Encodian ,

 

Here are the two flows side by side. As I mentioned before, I had everything in one flow and the same results.  Remember, I am saving to OneDrive and I have to Create Table as it doesnt exist in the Attachment.

 

Flow.PNG

Hey @admiralman 

Referring to my working example Flow.... this downloads the attachment from the email, obtains the data from the spreadsheet... you'd just need to add additional logic reference to what you wanted to do with each row of data from the spreadsheet.

Am I missing something extra in your requirements that this Flow doesn't cover?

Jay

The issue is not knowing HOW to do this, its the fact that it doesn't work. I can create the file but a table is required in order to get the rows in the Excel document. I try to Create Table I get the error I mentioned. The resource is there because I just created it but there is something causing an error.  Why don't you try this on your side?

 

1. Get excel document that doesn't have a table from email and save it to a OneDrive.

2. Create an Excel table in the downloaded Excel document. 

3. Get all rows from Excel table and load into SP List.

 

That is what I'm trying to accomplish...your example doesn't have those complications.

 

@admiralman 

Please remember we are a community giving up our own time to help you.

Your requirements of adding data to the table were not clear, which is why the original example didn't include that example and I'd asked for you to clarify.

The steps still do not make sense to me and your Flow configuration looks confused against your requirements:

1. Get excel document that doesn't have a table from email and save it to a OneDrive - OK

2. Create an Excel table in the downloaded Excel document. - OK

3. Get all rows from Excel table and load into SP List. - When was data added to the table? I assume this should be the other way around?

May be of interest: https://powerusers.microsoft.com/t5/Building-Flows/Create-a-Worksheet-and-Table-in-Excel-and-then-ad...

I think you need to do the following:

Flow 1

  1. Extract the Excel document from the Email then add to OneDrive or SharePoint
  2. Create the Table in the Excel document
  3. Trigger another Flow (Flow 2)

Flow 2

  1. Get data which you need to add to the Table
  2. Add the data to the Table

Or for absolute clarity are you simply saying that you cannot find a way to add the table to the Excel document after you have added the file to OneDrive / SharePoint? If there's a file locking issue have you considered processing on Azure storage to work around?

Jay

@Jay-Encodian 

The data already exists within the Excel document however there is not a Table (Named Range) defined on the Excel sheet. Without that, you can't use the "List rows present in a table" action of the Excel Online for Business connector. 

 

Hopefully this will answer:

 

3. Get all rows from Excel table and load into SP List. - When was data added to the table? I assume this should be the other way around?

 

For your other suggestion..l have tried and the Create Table action fails with the same message.

 

Flow 1

  1. Extract the Excel document from the Email then add to OneDrive or SharePoint
  2. Create the Table in the Excel document
  3. Trigger another Flow (Flow 2)

Flow 2

  1. Get data which you need to add to the Table
  2. Add the data to the Table

Ok, so the issue is creating a table in the existing Excel document in the first Flow... I have just updated my previous example which has worked fine:

1.PNG

 The Flow run:

1.PNG

 

The resulting file:

1.PNG

 

So this should cover your requirements for Flow 1:

1. Save the file

2. Create the table

Set Flow 2 to be triggered by an update to the File (You may need to add logic for recursive events):

1. Get the Data

2. Add the data to the excel document

 

HTH

Jay

View solution in original post

@Jay-Encodian That seems to work and thank you. I was looking for a solution using OneDrive for Business but I accepted this all the same. Any idea if this could work in OneDrive instead of an SP library?

@admiralman 

Good news 

Ref OneDrive; I don’t foresee why it wouldn’t work but unless these files are personal document they should really be in SharePoint even if they are transient. It should be simple to test, just replace the SharePoint actions with the OneDrive equivalents

I hit a similar issue with the 404 Resource could not be found error message when trying to create a table on an existing XLSX file in OneDrive (for Business). Stumbled across this thread, and following the recommended Solution (saving to Sharepoint instead of OneDrive) was able to get it to work.

 

That then got me thinking about why it wasn't working in OneDrive. So I spent some time troubleshooting and figured it out.

 

In the "Excel Create Table" flow if you use the file name of like /MyFolder/filename.xlsx , the flow will FAIL with the 404 resource error.

 

Where as if you use the Dynamic Expression "Id" which is the unique identfier of the file (From the OneDrive Create File flow or from the OneDrive Get Metadata flow). Then it runs successfully! Seems calling Excel Create Table doesn't play nicely with the actual reference file name.

 

2020-03-10 12_54_27-Window.png

LadyAda
Frequent Visitor

Thank u! Using file metadata ID solved my problem

RCB
Frequent Visitor

rcheetah, you are a gift from heaven.  I've been trying to get a string expression to work for days.  When you select a file from the chooser on that action, it populates the chooser's textbox with a path to the file.  But if you copy that very same path into an expression on the textbox, the flow fails.  Infuriating.

 

Using the ID leads to success.  The folks who made this action need a talking to when it comes to user expectations.  

 

 

To add to this, how can you create a table if you dont know how many rows there are?  Is there a way to get the total number of rows, to pass into the Table Create function?

I did a Create Table and specified a table range that I knew was larger than my data set. I then did a list rows present in table and passed that value to a filter array. I filtered the array based upon a column value being not

empty "empty of column1 is equal to bool false"

 

 

2021-02-22 10_57_06-Power Apps.png

 

 

 

Clever idea @admiralman - so this will only add rows with data to the list and ignore empty rows? And could you clarify the "empty" filter - not finding it.

admiralman
Helper I
Helper I

It is...wish I could take credit but I found the solution on here. Yes, it will filter them out.

 

empty(item()?['First Column in Excel'])
Nabrina_Pow
Regular Visitor

How do i set the Table Range, while the file is coming from email and the rows are dynamic

For mycase an email  with 2 csv attachment comes to a shared mailbox every week. 

As suggested above by @admiralman , create the table with enough rows to accommodate the largest number possible, and then apply filter so only rows with data are passed to the list. 

Hello there

I am doing the exercise but it does not work for me

Do you have any idea?

 

pronuer_0-1633028252945.png

 

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Users online (2,388)