Skip to content

Data Export

SeizenTable supports data export through the FileExportPlugin from @izumisy/seizen-table-plugins.

Click the export icon in the side panel to download the table data in CSV, TSV, or JSONL format.

Terminal window
npm install @izumisy/seizen-table-plugins
import { useSeizenTable, SeizenTable } from "@izumisy/seizen-table";
import {
FileExportPlugin,
CsvExporter,
JsonlExporter,
TsvExporter,
} from "@izumisy/seizen-table-plugins/file-export";
function MyTable() {
const table = useSeizenTable({
data,
columns,
plugins: [
FileExportPlugin.configure({
filename: "my-data",
exporters: [CsvExporter, JsonlExporter, TsvExporter],
}),
],
});
return <SeizenTable table={table} />;
}
ExporterFormatExtensionDescription
CsvExporterCSV.csvComma-separated values
JsonlExporterJSONL.jsonlJSON Lines (one JSON object per line)
TsvExporterTSV.tsvTab-separated values
OptionTypeDefaultDescription
widthnumber300Width of the side panel
filenamestring"export"Default filename (without extension)
includeHeadersbooleantrueInclude column headers in export
exportersExporter[][CsvExporter]Available export formats
  • Exports visible columns only (respects column visibility settings)
  • Exports all rows matching current filters
  • Users can customize the filename before downloading

Create your own exporter by implementing the Exporter interface:

import type { Exporter } from "@izumisy/seizen-table-plugins/file-export";
const MarkdownExporter: Exporter = {
id: "markdown",
name: "Markdown Table",
extension: "md",
mimeType: "text/markdown",
convert: (data, columns, options) => {
const headers = columns.map((c) => c.header);
const separator = columns.map(() => "---");
const rows = data.map((row) =>
columns.map((col) => String(row[col.key] ?? ""))
);
return [
`| ${headers.join(" | ")} |`,
`| ${separator.join(" | ")} |`,
...rows.map((r) => `| ${r.join(" | ")} |`),
].join("\n");
},
};