CSV text (#47) for TanStack rows and columns, RFC 4180: CRLF
records, a header record from each column's header text (its id
when the header is not a string), fields quoted and quote-doubled
only where needed, cell VALUES (row.getValue, so null is empty
and objects are JSON) rather than rendered nodes.
It is pure and headless so a host that owns its own TanStack table
(or wires its own button) can call it; TableView's exportCsv
button passes table.getSortedRowModel().rows (the filtered rows
in the current sort) and table.getVisibleLeafColumns() (column
visibility and order applied). options.value (#58) replaces the
cell value per cell; TableView routes a column's csv reader
through it.
CSV text (#47) for TanStack rows and columns, RFC 4180: CRLF records, a header record from each column's header text (its id when the header is not a string), fields quoted and quote-doubled only where needed, cell VALUES (
row.getValue, so null is empty and objects are JSON) rather than rendered nodes.It is pure and headless so a host that owns its own TanStack table (or wires its own button) can call it; TableView's
exportCsvbutton passestable.getSortedRowModel().rows(the filtered rows in the current sort) andtable.getVisibleLeafColumns()(column visibility and order applied).options.value(#58) replaces the cell value per cell; TableView routes a column'scsvreader through it.