# Email a SharePoint list as an Excel file every week

> For the full documentation index, see https://250highstreet.com/llms.txt

> Build a weekly Power Automate flow that copies an Excel template, fills it with SharePoint list rows and emails the .xlsx, with the limits Microsoft lists.

Short answer: a scheduled flow can read your list with Get items, save a dated copy of a blank Excel template with Get file content and Create file, add each row with Add a row into a table, and email the finished file with Send an email (V2). The Excel Online (Business) connector has no action that makes a new workbook from nothing, so the template does that job. Set Top Count and Pagination first, or the file holds only 100 rows.

## The plan in one picture

The flow has eight steps. Each one is a named action.

1.  Recurrence. Runs the flow every week.
2.  Get items (SharePoint). Reads the rows.
3.  Get file content (SharePoint). Reads the blank template.
4.  Create file (SharePoint). Saves a new, dated copy of the template.
5.  Apply to each. Goes through the rows one at a time.
6.  Add a row into a table (Excel Online (Business)). Writes one list row into the copy.
7.  Get file content (SharePoint). Reads the finished file.
8.  Send an email (V2) (Office 365 Outlook). Mails the file.

Why a template: Microsoft's Excel Online (Business) connector page lists actions such as Add a row into a table, Create table, Create worksheet, Delete a row and List rows present in a table. It has no action that deletes all rows at once. Delete a row works by a key column, and Microsoft says that when several rows match, only the first row is deleted. A fresh copy of an empty template each week avoids any clearing step.

## Step 1. Make the template workbook

Make this in Excel. Nothing here is a download. You build it once.

1.  Create a new workbook and give it a short name, for example List export template.
2.  In row 1, type one heading for each list column you want in the report, such as Title, Status, Owner and Due date.
3.  Select that heading row and turn it into a table with Insert, then Table. Tick the box that says the table has headers.
4.  Name the table. Select a cell in it, open Table Design and type a name such as ExportTable.
5.  Save the workbook in a SharePoint document library that the flow's account can open.

Microsoft's page lists these limits for the connector: the file must be .xlsx or .xlsb, the maximum file size is 25 MB, and each connector request can be up to 5 MB. It also says that header cells containing only a number can cause unexpected behavior. Use text headings.

If you would rather create the table from a flow, Microsoft's page lists the Create table action: "Create a new table in the Excel workbook." It asks for a Table range in A1 notation and accepts column names separated by ; or ,. It needs a workbook to exist first.

Our advice, not a Microsoft rule: keep one template per report, and name the table after the report.

## Step 2. Start the flow on a schedule

Microsoft's scheduling page gives these steps.

1.  Sign in to Power Automate. Select My flows, then Create from blank.
2.  Select Add a trigger, search for Recurrence and select it.
3.  Set Interval to 1 and Frequency to Week.
4.  Select Create.
5.  Open the Recurrence trigger and pick a Time zone.
6.  Because Frequency is Week, pick the On these days and At these hours values.

Microsoft says the Start time uses the format YYYY-MM-DDTHH:MM:SSZ and gives 2025-03-24T22:00:00Z as the form for 3:00 PM Pacific on March 24, 2025. If the flow does not run at the time you expect, see "[Scheduled flow did not run at the set time](/guides/power-automate-scheduled-flow-not-running/)".

## Step 3. Get the list rows

1.  Select New step or the plus sign, search for SharePoint, and select Get items.
2.  Choose your Site Address and List Name.
3.  Open Advanced options. Set a Filter Query if you want only some rows. Microsoft gives this example: Location eq 'Midwest' and Status eq 'Approved'. Microsoft lists eq and ne for string comparisons.
4.  Set Top Count to 5000.
5.  Open the action Settings and turn Pagination on.

Here is what Microsoft's Get items page states. "The default item limit is 100." With only a site address and list name filled in, you get 100 items back. To raise it, Top Count can go "up to the list view threshold limit of 5,000." Past that, the page says "Power Automate fails and generates an error dialog." On lists above 5,000 items, it says to enable Pagination from the action settings menu. See "[Power Automate Get items stops at 100 rows: how to get them all](/guides/power-automate-get-items-only-returns-100/)".

Also on that page: the Limit columns by view option, under Advanced options, keeps the action from reading every column. Pick a view that shows only the columns your report uses.

## Step 4. Copy the template

1.  Add the SharePoint action Get file content. Pick your template file.
2.  Add the SharePoint action Create file. Set Site Address, and set Folder Path to your report folder.
3.  Set File Name to an expression that adds the date, such as: concat('List export ', formatDateTime(utcNow(),'yyyy-MM-dd'), '.xlsx')
4.  Set File Content to the File Content from step 1.

Microsoft describes Create file this way: "Uploads a file to a SharePoint site. Make sure to pick an existing library." It lists Site Address, Folder Path, File Name and File Content as required, and Folder Path "Must start with an existing library." The SharePoint Copy file action has no file name field, so this guide uses Create file. formatDateTime(utcNow(),'yyyy-MM-dd') is an expression Microsoft's Get items page uses in a filter query.

Our advice, not a Microsoft rule: a dated name gives each week its own file, so next week's run does not replace this week's report. Test the name on one run before you rely on it.

## Step 5. Write the rows

1.  Add Apply to each. Pick the value output of Get items.
2.  Inside it, add the Excel Online (Business) action Add a row into a table.
3.  Set Location to your site and Document Library to the library. Set File to the Id output of Create file. Microsoft's Excel page says File can take a SharePoint action's Id output.
4.  Set Table to your table name.
5.  Fill each table column with the matching list column.

Microsoft's page describes Add a row into a table as: "Add a new row into the Excel table."

Three limits from the same page decide how big a list this works for.

- Throttling. Microsoft lists 100 calls per 60 seconds per connection. One row is one call. At that rate, a list of 1,000 rows takes at least ten minutes for this step.
- Delay. Microsoft says changes from Add a row do not always take effect right away, and "Delays up to 30 seconds are expected."
- One writer. Microsoft says to avoid writing to a single Excel file from several clients at once. Leave concurrency control off on Apply to each so rows are added one at a time. See "[Speed up Apply to each with concurrency control](/guides/power-automate-apply-to-each-concurrency/)".

Date columns: the Add a row into a table action has a DateTime Format field. Our advice, not a Microsoft rule: set it and check one date in the finished file.

Person and choice columns: Our advice, not a Microsoft rule: start with text, number and date columns only. Add person columns after the basic flow works.

## Step 6. Attach the file and send

1.  After the Apply to each box, add the SharePoint action Get file content. Set File Identifier to the Id output of Create file.
2.  Add Send an email (V2) from Office 365 Outlook.
3.  Set To, Subject and Body.
4.  Open the Attachments fields. Set the name to the file name, ending in .xlsx.
5.  Set the content to the File content from Get file content.

Microsoft describes Get file content as: "Gets file contents using the file identifier. The contents can be copied somewhere else, or be used as an attachment." On Send an email (V2), the attachment fields are described as "Attachment name" and "Attachment content."

Size: Microsoft's Office 365 Outlook page lists "Maximum mails content length (in MB)" as 49. It also notes that when Send an email V2 sends multiple attachments, the files may be invalid in some cases, and gives a workaround that stores the attachments in an array variable. For one file, this does not apply. If the email goes out without the file, see "[My flow email goes out without the attachment](/guides/power-automate-send-email-with-attachment-not-working/)".

## Wait before you read the file

Microsoft's Excel page warns that a file can stay locked for updates and deletes for up to 6 minutes after the connector last used it. Our advice, not a Microsoft rule: if Get file content fails right after the last row, add a Delay action before it and test again. See "Fix "file is locked for shared use" [in Power Automate](/guides/power-automate-file-is-locked-for-shared-use/)".

## Troubleshooting

- The file has only 100 rows. Top Count and Pagination are not set. See Step 3.
- 429 or throttling errors. Microsoft says to add explicit delays around the connector action. See "[Fix 429 Too Many Requests in Power Automate](/guides/power-automate-429-too-many-requests/)".
- 403 Forbidden. Microsoft's page says: "Ensure that the file has write access."
- 502 BadGateway. Microsoft says this shows when the spreadsheet is in read-only mode.
- Rows added twice. Microsoft says that a recalculation timeout, caused by complicated formulas or a very large worksheet, can insert the same data again because of the retry policy. Keep the template free of formulas.
- The row will not add. See "[Power Automate cannot add a row to my Excel table: causes and fixes](/guides/power-automate-add-row-to-excel-table-fails/)".

## Is this the right tool

If you only need the list in Excel once, the list's own Export to Excel command does it. See "[SharePoint list export to Excel fails or misses rows](/guides/sharepoint-list-export-to-excel-not-working/)". Use the flow when you want the same report on a schedule, in someone's inbox, with no one clicking.

For a list with thousands of rows, the 100 calls per 60 seconds limit makes this build slow. In that case, ask whether the report needs every row or only a filtered set. A filter in Get items is the easiest fix.

## When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: \$5,000 for one, built in 2 weeks. See "[What a SharePoint tracker costs to build](/guides/what-a-sharepoint-tracker-costs/)". Bring one example of the problem to a free call.

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: [Tools I built](/portfolio/)

## FAQ

### Can Power Automate export a SharePoint list to Excel?

Yes. Use a scheduled flow with Get items, Create file and Add a row into a table, then email the new file.

### Is there a Power Automate action that creates a new Excel file?

The Excel Online (Business) actions Microsoft lists include Create table and Create worksheet, which work in an existing workbook. Copying a template is the way this guide starts a new file.

### Why does my Power Automate export have only 100 rows?

Microsoft says the Get items default limit is 100. Set Top Count up to 5,000 and turn Pagination on.

### How do I email an Excel file from Power Automate?

Use Get file content, then Send an email (V2) with the file name and file content in the attachment fields.

### How big can the Excel file be?

Microsoft lists 25 MB as the maximum Excel file size for the connector and 49 MB as the maximum mail content length for Send an email.

## Sources

- [Microsoft Learn, Excel Online (Business) connector](https://learn.microsoft.com/connectors/excelonlinebusiness)
- [Microsoft Learn, SharePoint connector](https://learn.microsoft.com/en-us/connectors/sharepointonline/)
- [Microsoft Learn, Office 365 Outlook connector](https://learn.microsoft.com/en-us/connectors/office365/)
- [Microsoft Learn, In-depth analysis into Get items and Get files SharePoint actions](https://learn.microsoft.com/en-us/sharepoint/dev/business-apps/power-automate/guidance/working-with-get-items-and-get-files)
- [Microsoft Learn, Run a cloud flow on a schedule in Power Automate](https://learn.microsoft.com/en-us/power-automate/run-scheduled-tasks)

## Related guides

- [SharePoint list export to Excel fails or misses rows](/guides/sharepoint-list-export-to-excel-not-working/)
- [Planner Export to Excel option is missing: where to find it](/guides/planner-export-to-excel-missing/)
- [Copy a SharePoint list to another site with its data](/guides/copy-sharepoint-list-to-another-site-with-data/)
- [Your weekly status report takes hours to build](/guides/weekly-status-report-takes-hours/)

Source: https://250highstreet.com/guides/power-automate-export-sharepoint-list-to-excel-weekly/
