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

Populate a word document with power automate using repeating content control

Hi everyone...., I almost finish my app.., One part is that I have to create a pdf file, So I watched a couple of videos in order to populate a word document using power automate.., Then I did the template, I added all the content controls for the non repeating content with simple text holders.  I solved this using the "Ask to powerapps" solution.... all these fields in the template are ok.. but when I see the repeating content section I don´t know how to do it...., I have seen some videos using SP list, but in my case I am using an xls sheet on onedrive..., so, I don´t have idea in order to solve this situation..  The Details table is the following (excel)

DateFacNumberSerieClientOrderNumQtyCost
5-jun4AClient One3102
5-jun4AClient One492
5-jun4AClient One892
5-jun4AClient One12102

 

 

if someone could help me out, Thank you in advanced

Details: FacNumber is the same in all the rows, Serie: is only a kind of document, Client: All the rows have the same Client, OrderNumber: is different in every row.., (OrderNumber, Quantity, Cost) are fields of another table..., .

Alex

1 ACCEPTED SOLUTION

Accepted Solutions
Community Support
Community Support

Hi @alexaristide ,

Do you want to create a PDF file with repeating table based on the Table rows from your canvas app?

 

Based on the needs that you mentioned, I think it is not necessary to populate a Word document with repeating content control. Instead, I think a HTML Table in a HTML file could achieve your needs.

 

Firstly, within your canvas app, you could generate HTML table using Html Text control based on your Table rows. Then you could pass the generated HTML Table string value to your Power Automate flow. Within your Power Automate flow, you could create a HTML file based on the passed HTML text value in your OneDrive folder. Then you could add a "Convert file" action of OneDrive connector to convert the HTML file content into a PDF file content. With the converted PDF file content, you could create your PDF file.

 

I have made a test on my side, please consider take a try with the following workaround:

Flow's configuration as below:

13.JPG

 

App's configuration as below:

 

14.JPG

 

15.JPG

Within your app, you need to create a connection to your above flow firstly.

Set the HtmlText property of the Html Text control (HtmlText1) to following:

"<h3>Asset Checkout Notification</h3>" &
"<table width='100%'> " &
     "<tr>
         <td> Employee: </td>" & "<td>John Smith (johnsm@contoso.com)</td>" &
     "</tr>" &
     "<tr>
         <td> Checkout Date: </td> <td>" & Today() & "</td>
     </tr>" &
     "<tr>
         <td> Return date: </td> <td>" & DateAdd(Today(), 1, Months) & "</td>
     </tr>" &
"</table> <br>" &

"<strong> Items: </strong>" &
"<table width='100%' border='1' cellpadding='5' style='border:1px solid black; border-collapse:collapse'>" &
     "<tr style='background-color:#efefef' >
         <td> Date </td> <td> FaceNumber </td> <td> Serie </td><td> Client </td><td> OrderNum </td><td> Qty </td><td> Cost </td>
     </tr>
     " &
         Concat('Your Excel Table',
             "<tr><td>" & Date & " </td>
              <td>" & FaceNumber & " </td>
              <td>" & Serie & " </td>
              <td>" & Client & " </td>
              <td>" & OrderNum & " </td>
              <td>" & Qty & " </td>
              <td>" & Cost & " </td>
              </tr>") &"
</table>"

Set the OnSelect property of the "Upload" button to following:

GeneratePDFFilebasedonHTMLtablepassedfromapp.Run(HtmlText1.HtmlText)

When press the "Upload" button from your canvas app, the above flow would be fired to create a PDF file.

 

The generated PDF file would be stored in your OneDrive folder, and looks like below:

16.JPG

 

Please consider take a try with above solution, then check if the issue is solved.

 

 

More details about firing a flow from a canvas app, please check the following video resource:

https://www.youtube.com/watch?v=1wl9AtxWdkg

 

More details about formatting table rows as a HTML Table, please check the following blog:

https://powerapps.microsoft.com/en-us/blog/html-email-reporting-with-tabular-data/

https://www.youtube.com/watch?v=IhE0-HumNNo

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
Community Support
Community Support

Hi @alexaristide ,

Do you want to create a PDF file with repeating table based on the Table rows from your canvas app?

 

Based on the needs that you mentioned, I think it is not necessary to populate a Word document with repeating content control. Instead, I think a HTML Table in a HTML file could achieve your needs.

 

Firstly, within your canvas app, you could generate HTML table using Html Text control based on your Table rows. Then you could pass the generated HTML Table string value to your Power Automate flow. Within your Power Automate flow, you could create a HTML file based on the passed HTML text value in your OneDrive folder. Then you could add a "Convert file" action of OneDrive connector to convert the HTML file content into a PDF file content. With the converted PDF file content, you could create your PDF file.

 

I have made a test on my side, please consider take a try with the following workaround:

Flow's configuration as below:

13.JPG

 

App's configuration as below:

 

14.JPG

 

15.JPG

Within your app, you need to create a connection to your above flow firstly.

Set the HtmlText property of the Html Text control (HtmlText1) to following:

"<h3>Asset Checkout Notification</h3>" &
"<table width='100%'> " &
     "<tr>
         <td> Employee: </td>" & "<td>John Smith (johnsm@contoso.com)</td>" &
     "</tr>" &
     "<tr>
         <td> Checkout Date: </td> <td>" & Today() & "</td>
     </tr>" &
     "<tr>
         <td> Return date: </td> <td>" & DateAdd(Today(), 1, Months) & "</td>
     </tr>" &
"</table> <br>" &

"<strong> Items: </strong>" &
"<table width='100%' border='1' cellpadding='5' style='border:1px solid black; border-collapse:collapse'>" &
     "<tr style='background-color:#efefef' >
         <td> Date </td> <td> FaceNumber </td> <td> Serie </td><td> Client </td><td> OrderNum </td><td> Qty </td><td> Cost </td>
     </tr>
     " &
         Concat('Your Excel Table',
             "<tr><td>" & Date & " </td>
              <td>" & FaceNumber & " </td>
              <td>" & Serie & " </td>
              <td>" & Client & " </td>
              <td>" & OrderNum & " </td>
              <td>" & Qty & " </td>
              <td>" & Cost & " </td>
              </tr>") &"
</table>"

Set the OnSelect property of the "Upload" button to following:

GeneratePDFFilebasedonHTMLtablepassedfromapp.Run(HtmlText1.HtmlText)

When press the "Upload" button from your canvas app, the above flow would be fired to create a PDF file.

 

The generated PDF file would be stored in your OneDrive folder, and looks like below:

16.JPG

 

Please consider take a try with above solution, then check if the issue is solved.

 

 

More details about firing a flow from a canvas app, please check the following video resource:

https://www.youtube.com/watch?v=1wl9AtxWdkg

 

More details about formatting table rows as a HTML Table, please check the following blog:

https://powerapps.microsoft.com/en-us/blog/html-email-reporting-with-tabular-data/

https://www.youtube.com/watch?v=IhE0-HumNNo

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

This is a great solution, in fact it is a complete solution about how to create a PDF file with a table inside…, but I already have a template with logo, and other fields of the document to create,..., If a take this solution I would have to change all about the final document.., so, if you could help me out in order to continue with my solution.., 

I took idea from this video in order to do the template and how to populate (using Ask in powerapps) the non repeating content… 

https://www.youtube.com/watch?v=-1jsBllmr-w&t=692s

 

but when I have to add the repeating content section is the problem…, in that video the example is using a SP list, in my case is an XLS sheet…, 

thank you

 

Hi @alexaristide ,

Based on the needs that you mentioned, I think the solution I provided would achieve your needs better.

 

If you still want to use "Populate a Microsoft Word Template" action in your flow, please check and see if the following blog would help in your scenario:

https://flow.microsoft.com/en-us/blog/intermediate-flow-of-the-week-create-pdf-invoices-using-word-t...

 

Firstly, you need to convert your whole Excel table records into a JSON Table string value using the JSON function in your canvas app. Then pass the converted JSON table string value to your flow. Within your flow, you need to use the json function convert the passed JSON Table string value into a actual JSON Table (array value). After that, you could apply the converted JSON table into the Repeating section field in your  "Populate a Microsoft Word Template" action.

 

In addition, within your flow, you could also do some modification to the converted JSON Table (using Select action or Parse JSON action) to meet the fields name you set in your Repeating section control.

 

More details about passing JSON string from canvas app to Power Automate flow, please check the following video:

https://www.youtube.com/watch?v=HLdOO4JPZ2I

 

Note: The whole process logic is the same, the only different thing is that you need to pass your Excel table records as a JSON String from your canvas app to your flow.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
New Badges

New Solution Badges!

Check out our new profile badges recognizing authored solutions!

New Power Super Users

Congratulations!

We are excited to announce the Power Apps Super Users!

Power Apps Community Call

Power Apps Community Call: February

Did you miss the call? Check out the Power Apps Community Call here.

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

Top Solution Authors
Top Kudoed Authors
Users online (46,821)