Spreadsheets are the most common format for reporting and business workflows. Savant supports both Excel and Google Sheets as read sources and write targets, enabling structured outputs that are ready to share without additional formatting.
Supported extensions
Extension | Type | Read limit | Write limit |
| Excel Spreadsheet (current) | 1 GB | 1 GB ¹ |
| Excel Spreadsheet (legacy) | 1 GB | 1 GB ¹ |
| Excel Spreadsheet with macros | 1 GB | 1 GB ¹ |
| Excel Spreadsheet binary | 1 GB | 1 GB ¹ |
| Google Sheets | 1 GB | 1 GB ¹ |
¹ When writing spreadsheets via the Microsoft OneDrive or SharePoint connectors, the write limit is 250 MB. This constraint is imposed by the Microsoft Graph API and applies regardless of file format.
Read features
Reading a single file
When you configure a dataset with a File URL, Savant reads exactly one workbook and builds the dataset from the sheet and range defined by the settings below. Each run fetches the latest saved version of the file. If the file is moved, deleted, or access is revoked, the run fails with an explicit error.
File replacement and stale reads: Savant tracks source files by file ID, not filename. If you update a file by uploading a new version rather than editing the original in place, the original file moves to the trash with its ID intact – and Savant keeps reading it silently until it is permanently deleted.
As a best practice, always edit source files in place. If you do replace a file, update the dataset with the new file URL before the next run.
Tab selection and tab pattern
Tab Selection specifies the exact worksheet Savant reads from. Use this when the sheet name is fixed (for example, Data or Sheet1).
Tab Pattern is designed for workbooks where sheet names follow a recurring pattern but change over time – for example, Jan Report, Feb Report. Rather than updating the dataset each month, Tab Pattern matches the relevant sheet automatically based on the pattern you define.
Read as Stored vs. Read as Formatted
These two modes control how Savant interprets cell values when reading Excel files.
Read as Stored returns the underlying numeric or date value as stored in the cell – for example, 1.096748 rather than the display value $1.10. Use this when numerical precision matters for downstream calculations.
Read as Formatted returns the display value as it appears in Excel, including currency symbols, date formats, and rounding. Use this when the goal is to preserve the workbook's presentation – for example, when the Excel file is itself a reporting artifact.
Skip rows
Skip Rows instructs Savant to ignore a specified number of rows at the top of the sheet before reading content. This is useful for report-style workbooks that include titles, notes, or metadata above the actual data table. Savant skips those rows and builds the dataset from the first valid row of content.
Headerless
When enabled, Headerless tells Savant not to treat the first row as column names. Instead, Savant generates column names automatically and keeps all rows as data. Use this for files that contain only data rows with no header.
This example file:
Acme 1 | Acme 2 | Acme 3 |
Alpha | Beta | Charlie |
Is read as:
Column 1 | Column 2 | Column 3 |
Acme 1 | Acme 2 | Acme 3 |
Alpha | Beta | Charlie |
Common headers
Common Headers lets you define a fixed column set for the dataset. When reading a single file this is optional, but it is useful when you want to enforce a known schema rather than relying on whatever headers are present in the file. In folder mode, it becomes a best practice (see below).
Include metadata
When enabled, Savant appends file-level context columns to every row in the dataset. These columns typically include the file name, full path, file size, and last-modified timestamp, depending on what the connector exposes.
This is especially useful when reading from a folder with multiple workbooks: if an unexpected row appears in the output, the metadata columns identify exactly which source file it came from.
Reading from a folder
When you configure a dataset with a Folder URL, Savant treats the folder as the input source. At run time, Savant enumerates the workbooks in the folder and applies the selection rules below to determine which files to ingest.
File pattern
File Pattern restricts ingestion to files whose names match a specified pattern, preventing unintended files from being picked up in a shared folder. For example, a pattern like billings_*.xlsx ingests only matching files and ignores everything else.
Scan subfolders
When enabled, Scan Subfolders extends the read to include files in nested subdirectories. This is useful when workbooks are organized by date, region, or business unit across multiple folders. Savant supports reading from up to 10 subfolders within any given folder.
Use only most recent file
When enabled, Savant ingests a single file: the newest matching file based on last-modified time. This is the right choice for recurring workflows where a fresh export is delivered to the folder on a schedule and you always want the latest version without updating the dataset configuration.
Common headers
When a folder read brings in multiple workbooks, Common Headers aligns all files to a consistent column set, even when headers vary across files or some older files are missing fields.
Write features
Folder path
Folder Path defines the destination where Savant writes the output file. For recurring workflows, keeping this path consistent ensures that downstream systems and users always know where to find the latest output.
Subfolders name
Subfolders controls how output files are organized within the destination path. Subfolders can be static (a fixed path) or dynamic, where Savant generates a separate subfolder for each unique value of one or more dataset fields – for example, one folder per region or one folder per day.
File name
File Naming determines how each output file is named within its folder. Names can be static or dynamic. Dynamic naming generates one file per unique value of a selected field – for example, one file per customer or one file per category – within a single run.
Tab name
Tab Naming controls which worksheet receives the output within a workbook. Tab names can be static or field-based. Dynamic tab naming generates one sheet per unique field value – for example, one sheet per department – within a single output file. Savant handles edge cases including long names, special characters, and duplicate tab names predictably.
Write operations
Savant supports three write operations for spreadsheet outputs:
Create – Writes a new workbook at the destination path
Update – Overwrites an existing workbook with fresh output
Insert – Appends new rows to an existing sheet
Note: Savant does not support writing Excel formulas. Data written to cells is written as values only.
File configuration
These settings control how data is positioned within the output workbook.
Top-left cell
Top-left Cell defines where Savant begins writing data within the sheet. Use this to preserve space for titles, headers, or template elements that appear above or to the left of the data range.
If tab exists → Replace
When enabled, this setting replaces the content of an existing sheet on each run rather than appending to it. This ensures each run produces a clean, current output rather than accumulating rows across runs.
Format from template
When a template file is provided, Savant uses the template's layout, formatting, and structure as the basis for the output – writing data into the defined sheet and starting cell while preserving the surrounding workbook design, including fonts, cell colors, and column formatting. Template-based formatting is supported for .xlsx and .xlsm files.
When an .xlsm template (macro-enabled) is used, Savant writes the output as .xlsx. Macro code in the template is not executed or carried over to the output file.
Sorting
Sorting controls the order in which rows are written to the output file. Specifying a sort order ensures consistent, predictable output across runs – particularly useful for reporting workflows where row order affects readability or downstream comparison.
