Supported File Formats
FileBender supports CSV, Excel (XLSX), and JSON files as both inputs and outputs. Each format has its own configuration options. This page documents every option, its default value, and format-specific behavior.
Input CSV
Section titled “Input CSV”Parsed with PapaParse. Supports streaming, so large files don’t need to fit in memory all at once.
| Option | Type | Default | Description |
|---|---|---|---|
delimiter | string (1 char) | , | Column separator character. Common alternatives: ;, \t (tab), |. |
hasHeader | boolean | true | When enabled, the first row is treated as column names. When disabled, columns are named Column 1, Column 2, etc. |
skipEmptyLines | boolean | true | Skip rows where every field is empty. |
Quoting rules. Fields that contain the delimiter, a newline, or a double-quote are expected to be wrapped in double quotes ("). A literal double-quote inside a quoted field is escaped by doubling it (""). This follows RFC 4180.
Encoding. Files are read as UTF-8. Non-UTF-8 files may produce garbled text in the preview and output.
Output CSV
Section titled “Output CSV”| Option | Type | Default | Description |
|---|---|---|---|
delimiter | string (1 char) | , | Column separator character in the generated file. |
includeHeader | boolean | true | Write column names as the first row. |
lineEnding | "LF" | "CRLF" | "LF" | Line ending style. Use CRLF for Windows compatibility. |
Tier availability. CSV output is available on all tiers (Free and above).
Excel (XLSX)
Section titled “Excel (XLSX)”Input Excel
Section titled “Input Excel”Parsed with SheetJS. Requires the full file in memory (not streamed), so very large workbooks may be slower to process.
| Option | Type | Default | Description |
|---|---|---|---|
sheetName | string | (none) | Name of the sheet to read. Takes precedence over sheetIndex. |
sheetIndex | integer | (none) | Zero-based index of the sheet to read. Ignored if sheetName is set. |
hasHeader | boolean | true | Treat the first row (after skipped rows) as column names. |
skipRows | integer | 0 | Number of rows to skip from the top of the sheet before reading data. Useful when a workbook has title rows above the actual table. |
When neither sheetName nor sheetIndex is provided, the first sheet in the workbook is used.
Supported cell types. Text, numbers, booleans, and dates. Formulas are evaluated by SheetJS and the result value is read. Merged cells are expanded to their constituent cells.
Output Excel
Section titled “Output Excel”| Option | Type | Default | Description |
|---|---|---|---|
filename | string | output.xlsx | Name of the generated file. |
sheetName | string | Sheet1 | Name of the sheet inside the workbook. |
Tier availability. XLSX output requires Starter tier or above. Free-tier flows can read XLSX files but cannot write them.
Input JSON
Section titled “Input JSON”| Option | Type | Default | Description |
|---|---|---|---|
rootPath | string | "" (root) | Dot-separated path to the array of objects within the JSON structure. For example, data.results reads from {"data": {"results": [...]}}. Leave empty when the top-level value is already an array. |
flattenNested | boolean | true | Flatten nested objects into dot-separated column names (e.g., address.city). Maximum nesting depth: 5 levels. |
Supported shapes. The input expects either a JSON array of objects ([{...}, {...}]) or newline-delimited JSON (NDJSON, one object per line). When rootPath is set, the value at that path must be an array of objects.
Header derivation. Column names are derived from the union of all object keys across every row. Rows missing a key get a null value for that column.
Output JSON
Section titled “Output JSON”| Option | Type | Default | Description |
|---|---|---|---|
format | "json_array" | "ndjson" | "json_array" | Output shape. json_array writes a single JSON array. ndjson writes one JSON object per line (newline-delimited). |
prettyPrint | boolean | false | Indent the output with 2-space indentation. Only applies to json_array format. |
unflattenNested | boolean | false | Reverse dot-separated column names back into nested objects (e.g., address.city becomes {"address": {"city": ...}}). Maximum depth: 5 levels. |
Tier availability. JSON output is available on all tiers (Free and above).
Format availability by tier
Section titled “Format availability by tier”| Format | Input | Output |
|---|---|---|
| CSV | All tiers | All tiers |
| XLSX | All tiers | Starter+ |
| JSON | All tiers | All tiers |
See Row Limits and Tiers for the full tier comparison.