core.extract_from_file
Extract From File (core.extract_from_file)
Turn a binary file into workable items. Row-based formats (CSV, TSV, XLSX, JSON arrays) emit one item per row — a 37k-row spreadsheet becomes 37k small items the data panel and downstream nodes handle comfortably, never one giant blob.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
format | auto/csv/tsv/xlsx/json/pdf/text | auto | Auto-detects from the file's extension and MIME type. |
binary_field | property name | data | Which binary property to read. With exactly one attachment, any name works — it falls back to the sole field. |
first_row_headers | boolean | true | CSV/TSV/XLSX: off → keys are col0, col1, … and every row is data. |
Behavior
- CSV / TSV — one item per row, columns become keys. RFC-4180 quoting: embedded commas, quoted newlines, and a UTF-8 BOM are handled.
- XLSX — one item per data row, across all worksheets.
- JSON — a top-level array becomes one item per element; an object or scalar file stays a single item.
- PDF —
{text, pages}; text —{text}.
Every produced item's paired_item points at the source item that carried
the file.
Quirks & tips
- A headers-only or zero-byte file yields no items — success, not an error. Downstream nodes on the branch are skipped.
- A corrupt file is a clean node error (invalid JSON, non-xlsx bytes) — the run stops with a message naming this node.
first_row_headers: falseis the escape hatch for files whose first row is data.- Headerless columns are positional (
col0…) — pair with a Set node to rename them once.
Related
- Create File — the reverse direction.
- HTTP Request —
parse: binaryresponses feed straight in here. - Split Out — for arrays inside json, no file involved.