CSV / TSV
Saving & exporting
This group writes a loaded CSV/TSV table out to a file — as CSV/TSV (with or without headers, a custom delimiter, or a specific encoding), appended to an existing file, split into several files, or converted to JSON or XML. Unlike the other CSV/TSV groups, these instructions don’t change the loaded table — they produce an output file at the path you give and leave the document as it is, so you can keep working with it afterward.
Prerequisite: a CSV/TSV document must already be loaded — created with Create CSV/TSV file or opened with one of the Reading instructions. These instructions read that loaded document and write it out; they don’t create or modify it.
These concepts recur across the instructions in this group; they are explained here once.
-
Document: the Document key points to the loaded CSV/TSV these instructions read and write out. If you leave it empty, the current document is used (the one instructions work on by default). If the key isn’t loaded, the instruction does nothing and no file is written.
-
These write files directly. Unlike the filtering and editing groups, saving and exporting create an output file immediately at the path you type — they are terminal steps. The loaded table is left untouched.
-
Type the full file name. The File path is used exactly as written, including the extension — e.g.
C:\out\report.csv,report.tsv,data.json. No extension is added for you. (Split Into Files is the exception — it builds file names for you inside a folder.) -
With or without headers. A table can be loaded with headers (each row carries its column names) or without (plain rows). Save File with Include headers on, Split Into Files and Export To Xml need the table loaded with headers — on a headerless table they produce an empty or columnless result. The others work either way.
-
Delimiter: CSV uses a comma; use a tab for TSV, or a semicolon, pipe, etc. Leave it at the default unless the program that reads the file needs a specific separator.
-
Overwrite vs append: the Save… and Export… instructions overwrite the target file if it already exists. Append Rows is the only one that adds to the end of an existing file.
-
Save a result (
saveRowCountKey/saveFileCountKey): each instruction can save how many rows it wrote (or, for Split Into Files, how many files it created) under the name you type, for later instructions to use with@name. Leave it empty and nothing is saved. -
Dynamic values
@name: the text fields (File path, Delimiter, Encoding, element names, and so on) accept a saved value — type@followed by its name and the engine substitutes it at run time. -
“From variable” fields: only Split Into Files has a number field (Rows per file), with a companion …key field. A number field can’t take
@name, so this is its equivalent:- If you leave the …key field empty, the number typed in the normal field is used.
- If you fill it in with the name of a saved value, the engine ignores the normal field and reads the number from that variable.
This is mainly for chaining instructions. If you only work with fixed values, you can ignore it.
Append Rows .csv
Adds the loaded table’s rows to the end of an existing CSV file without overwriting it.
When to use it: to keep growing a running file — e.g. append each batch to a master log or export.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Document key | The loaded CSV/TSV to write out. Empty = current document (accepts @name) |
(empty) | No |
| File path | The file to append to (accepts @name) |
(empty) | Yes |
| Delimiter | The separator used in the file (accepts @name) |
, |
No |
| Encoding | The file’s character encoding — must match the file | utf-8 |
No |
| Save row count key | Saves how many rows were appended | (empty) | No |
Important behavior: if File path is empty (or the document isn’t loaded) nothing happens. If the
file doesn’t exist yet (or is empty) it is created, and a header row is written only if the table
was loaded with headers. When appending to a file that already has content, no header row is
added. The Encoding must match the one the file was created with, or the text can be garbled.
Encoding options: utf-8, utf-8-bom, iso-8859-1, windows-1252.
Export To Json .csv
Writes the loaded table to a JSON file, using the same structure held in memory — a list of row objects when the table was loaded with headers, or a list of value lists when loaded without.
When to use it: to hand the data to a program, API, or config that expects JSON.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Document key | The loaded CSV/TSV to export. Empty = current document (accepts @name) |
(empty) | No |
| File path | The .json file to write (accepts @name) |
(empty) | Yes |
| Pretty print | If yes, indent for readability; if no, one compact line | yes |
No |
| Pretty print (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Save row count key | Saves how many rows were written | (empty) | No |
Important behavior: if File path is empty (or the document isn’t loaded) nothing happens. The file is written as UTF-8 (no byte-order mark) and overwrites any existing file at the path.
Export To Xml .csv
Writes the loaded table to an XML file — one element per row, one child element per column.
When to use it: to feed systems or tools that consume XML.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Document key | The loaded CSV/TSV to export. Empty = current document (accepts @name) |
(empty) | No |
| File path | The .xml file to write (accepts @name) |
(empty) | Yes |
| Root element name | Name of the wrapping element (accepts @name) |
Records |
No |
| Row element name | Name of each row’s element (accepts @name) |
Record |
No |
| Pretty print | If yes, indent for readability | yes |
No |
| Pretty print (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Save row count key | Saves how many rows were written | (empty) | No |
Important behavior: if File path is empty (or the document isn’t loaded) nothing happens.
Requires the table loaded with headers — the column names become the child element names, so a
headerless table yields rows with no child elements. Column names are cleaned into valid XML tags:
letters, digits and _ are kept, other characters become _, a name starting with a digit is
prefixed with _, and an empty name becomes col1, col2, … Written as UTF-8; overwrites an
existing file.
Save File .csv
Writes the loaded table to a new CSV/TSV file, choosing the header row, the separator and the character encoding in one instruction.
When to use it: the standard “save” for a CSV/TSV — and the one to use whenever the destination needs something specific: a semicolon or a tab instead of a comma, no header line, or an encoding such as Windows-1252 or UTF-8 with a BOM. All three choices combine freely.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Document key | The loaded CSV/TSV to write out. Empty = current document (accepts @name) |
(empty) | No |
| File path | The file to write (accepts @name) |
(empty) | Yes |
| Include headers | If yes, write a header row first | yes |
No |
| Delimiter | The separator to use — , for CSV, a tab for TSV, ;, |, … (accepts @name) |
, |
No |
| Encoding | The character encoding, chosen from a fixed list: UTF-8 · UTF-8 with BOM · ISO-8859-1 (Latin-1) · Windows-1252 | UTF-8 |
No |
| Include headers (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Save row count key | Saves how many rows were written | (empty) | No |
Important behavior: if File path is empty (or the document isn’t loaded) nothing happens, and it overwrites an existing file. With Include headers on, the table must have been loaded with headers; with it off, the data rows are written as-is, whether the table was loaded with headers or without. UTF-8 with BOM adds a byte-order mark (which helps spreadsheet apps recognize UTF-8); the other options write without one.
Split Into Files .csv
Splits the loaded table into several smaller CSV files — either a fixed number of rows each, or one file per distinct value of a column.
When to use it: to break a large export into manageable pieces, or to separate rows by category — e.g. one file per country or per month.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Document key | The loaded CSV/TSV to split. Empty = current document (accepts @name) |
(empty) | No |
| Output folder | The folder the files are written into (accepts @name) |
(empty) | Yes |
| Base file name | The start of each generated file name (accepts @name) |
output |
No |
| Split mode | rows (fixed size) or column (one file per value) (accepts @name) |
rows |
No |
| Rows per file | In rows mode, how many rows per file |
1000 |
No |
| Split column name | In column mode, the column whose values group the rows (accepts @name) |
(empty) | No |
| Delimiter | The separator to use (accepts @name) |
, |
No |
| Rows per file (from variable) | (from variable) reads the rows-per-file from a saved value instead of the field above | (empty) | No |
| Save file count key | Saves how many files were created | (empty) | No |
Important behavior: if Output folder is empty (or the document isn’t loaded) nothing happens;
the folder is created if it doesn’t exist. Requires the table loaded with headers — every output
file starts with the header row. In rows mode files are named <base>_0001.csv, <base>_0002.csv,
… (a Rows per file of 0 or less falls back to 1000). In column mode files are named
<base>_<value>.csv, one per distinct value of Split column name (characters not allowed in file
names are replaced with _); if the named column isn’t found, all rows go into a single
<base>__empty.csv. Output files always use the .csv extension, and existing files with the same
names are overwritten.
This documentation is the help of the application, and it comes underCreative Commons Attribution 4.0.