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

ParameterTypeDefaultDescription
formatauto/csv/tsv/xlsx/json/pdf/textautoAuto-detects from the file's extension and MIME type.
binary_fieldproperty namedataWhich binary property to read. With exactly one attachment, any name works — it falls back to the sole field.
first_row_headersbooleantrueCSV/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: false is 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 Requestparse: binary responses feed straight in here.
  • Split Out — for arrays inside json, no file involved.