Create Excel from List
Audience:
Low-code EngineersSkill Prerequisites:
Actions,Lists,Tokens
Writes the items of a list to an Excel file (.xlsx) in a portal folder. Each item becomes a row, and you choose which columns to write. The file's URL, path and a download link can be saved as tokens.
The list comes from an earlier action, such as Create List from SQL, Create List from JSON or Create List from a CSV source. In a listing, it can also be the listing's rows.
This action requires the Excel feature package (EXGEN) to be licensed.
Typical Use Cases
- Export the rows of a listing to an Excel file that users can download
- Create a report from a list and email it with Send Email
- Add calculated columns or links with Excel formulas
- Share data in a password-protected workbook
Don't use it to
- Export a large query result. Use Create Excel from SQL query, which reads the rows straight from the database.
- Create a CSV file. Use Create CSV from List instead.
- Read an Excel file into a list. Use Create List from Excel (.xlsx) instead.
- Create a workbook with several sheets or with formatting. The action writes one plain sheet.
- Send the file to the browser. This action only creates it. See Delivering the file.
Related Actions
| Action Name | Description |
|---|---|
| Create List from SQL | Creates a list from the rows of a query. |
| Create Excel from SQL query | Writes the result of a query to an Excel file, without a list. |
| Create Excel from CSV Text | Writes CSV text to an Excel file. |
| Create CSV from List | Writes a list to a CSV file or token. |
| Create List from Excel (.xlsx) | Does the opposite: reads an Excel sheet into a list. |
| Send Email | Sends the file as an attachment. |
| Redirect to URL | Sends the user to the file's download link. |
Input Parameter Reference
| Parameter | Description | Supports Tokens | Default | Required |
|---|---|---|---|---|
| List Name | The name of the list to write, for example ContactsList. If it resolves to empty, the default list of the current context is used, for example the rows of a listing. If the list doesn't exist, the action fails. | Yes | empty string | Yes |
| Fields | The columns to write, in order. Each row has an Excel Name, which is the column header, for example Full Name, and a Value, for example [FirstName] [LastName]. In Value, tokens refer to the list item's properties first, then to the other tokens in the context. Hidden when Include All Fields is on. | Yes | empty | Yes, unless Include All Fields is on |
| Include All Fields | Writes every property of the list, using the property names as headers. Properties whose names start with __ are skipped. | No | false | No |
| Remove Field Names | Leaves out the header row, so the data starts in row 1. | No | false | No |
| Use excel formulas | Writes values that start with = as formulas, for example =B2*C2. See Cell values. | No | false | No |
| Criteria | Writes only the items that match. Each row has a Property, for example Status, and a Value, for example Active. An item must equal every value to be written. Values support tokens. | Yes (values) | empty | No |
| Pattern | The file name, without the extension, for example Contacts-[DateTime:Now|yyyyMMdd]. .xlsx is always added. Leave empty for a random name. | Yes | empty string | No |
| Handle Duplicates | What happens if a file with the same name already exists in the folder. Rename adds a unique suffix to the new file's name. Overwrite replaces the existing file. | No | Rename | Yes |
| File Password | A password needed to open the file. Leave empty for no password. | Yes | empty string | No |
| Worksheet Password | Protects the sheet, so users can see the data but not change it without the password. Leave empty for no protection. | Yes | empty string | No |
| Folder | The portal folder to save the file in. Select a folder, or in expression mode enter a folder path relative to the portal root, for example Exports/Contacts. Missing folders are created. | Yes | none selected | Yes |
| Disable Force Download | By default, the LinkClick URL makes the browser download the file. Turn this on to let the browser open it instead, if it can. Only affects the Store LinkClick Url token. | No | false | No |
Output Parameters Reference
Each output is optional. Enter a token name in the ones you need.
| Parameter | Description | Supports Tokens | Default | Required |
|---|---|---|---|---|
| Store Absolute URL | Receives the file's absolute URL, for example https://example.com/Portals/0/Exports/Contacts.xlsx. | No | empty string | No |
| Store Relative URL | Receives the file's URL relative to the site root, for example /Portals/0/Exports/Contacts.xlsx. | No | empty string | No |
| Store Physical Path | Receives the file's physical path on the server. | No | empty string | No |
| Store LinkClick Url | Receives a LinkClick URL for the file, for example /LinkClick.aspx?fileticket=.... | No | empty string | No |
Cell values
The workbook has one sheet, named Sheet1. The header row, if any, is row 1. Each value is written like this:
| Value | Written as |
|---|---|
Starts with =, and Use excel formulas is on | A formula. Formulas are calculated before the file is saved. |
Starts with '= | Text, with the ' removed, for example =Not a formula. Use this to write text that starts with =. |
A whole number, for example 42 | A number |
A decimal number, for example 19.99 | A number. The server's number format decides which decimal separator is recognized. |
Starts with 0 and has no decimal point, for example 00123, 0721555123 or 0 itself | Text, so leading zeros are kept. 0.5 is still a number. |
| Anything else, including dates | Text |
Dates are written as text, exactly as they appear in the list or the resolved token. Excel doesn't treat them as dates.
Delivering the file
The action saves the file but doesn't send it to the user. To deliver it:
- Redirect the user to the Store LinkClick Url token with Redirect to URL
- Attach it to an email with Send Email, using the file's URL in Attach from Token
- Show a link to the file in a message or a page
Considerations
- Allowed file extensions. The action adds
xlsxto the host's list of allowed file extensions if it isn't there. - Don't add the extension to Pattern.
Contacts.xlsxbecomesContacts.xlsx.xlsx. Characters that aren't allowed in file names make the action fail. - Large lists. The whole workbook is built in memory, and each value goes through token replacement. For many thousands of rows, use Create Excel from SQL query.
- Folder access. The file is saved with the folder's permissions. Choose a folder that the users who download the file can read, and keep private data out of public folders.
- Old files. Each run creates a new file unless Handle Duplicates is
Overwrite. Clean up old files, for example with Delete File. - Action Grid. In a grid, you can hide a column from the export only, with the
[SpecialContext:SerializeExcel]token in the field's condition. For example,[MyCondition] == "hide" || [SpecialContext:SerializeExcel].
Examples
To understand how to use the below examples, please see Running Examples.
1. Export open orders with a link column
This action writes the open items of OrdersList to Exports/Orders-<date>.xlsx. The Link column is a HYPERLINK formula that opens each order on the website. The LinkClick URL of the file is saved in the OrdersFileUrl token.
{
"Title": "Create Excel from List",
"ActionType": "ExcelFromEntityList",
"Description": "Export open orders",
"Parameters": {
"EntityName": "OrdersList",
"Fields": [
{
"name": "Order",
"value": "[OrderNumber]"
},
{
"name": "Quantity",
"value": "[Quantity]"
},
{
"name": "Price",
"value": "[Price]"
},
{
"name": "Link",
"value": "=HYPERLINK(\"https://example.com/orders/[OrderId]\", \"Open order\")"
}
],
"IncludeAllFields": false,
"RemoveFieldNames": false,
"UseFormulas": true,
"Criteria": [
{
"name": "Status",
"value": "Open"
}
],
"Pattern": "Orders-[DateTime:Now|yyyyMMdd]",
"Duplicates": "Overwrite",
"Folder": {
"Expression": "Exports",
"Value": "",
"IsExpression": true,
"Parameters": {}
},
"StoreLinkClick": "OrdersFileUrl",
"DisableForceDownload": false
}
}
2. Export every column to a protected workbook
This action writes every property of EmployeesList to a file with a random name in the HR/Exports folder. The file needs the password in the [ExportPassword] token to open. The absolute URL is saved in the EmployeesFileUrl token, for example to include in an email.
{
"Title": "Create Excel from List",
"ActionType": "ExcelFromEntityList",
"Description": "Export employees",
"Parameters": {
"EntityName": "EmployeesList",
"IncludeAllFields": true,
"RemoveFieldNames": false,
"UseFormulas": false,
"Criteria": [],
"Pattern": "",
"Duplicates": "Rename",
"FilePassword": "[ExportPassword]",
"WorksheetPassword": "",
"Folder": {
"Expression": "HR/Exports",
"Value": "",
"IsExpression": true,
"Parameters": {}
},
"StoreAbsoluteURL": "EmployeesFileUrl"
}
}
Revised 09/26/2026