Package Exports
- tt-export-to-csv
- tt-export-to-csv/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tt-export-to-csv) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TanStack Table Export to CSV
This library provides a function to export data from a TanStack table to a CSV file.
Installation
npm i tt-export-to-csv
or
yarn add tt-export-to-csv
Dependencies
This library has the following dependencies:
papaparse
: To handle data conversion to CSV format. It must be installed in your project for the library to work correctly.
Puedes instalar papaparse
usando npm
o yarn
:
npm install papaparse
yarn add papaparse
Usage
exportToCsv
The main function of the library is exportToCsv
, which allows you to export the table data to a CSV file.
Parámetros:
filename: The name of the CSV file to be generated.
headers: An array of
Header
objects that defines the table headers.rows: An array of
Row
objects containing the table data.original (optional): If specified as
true
, a CSV will be generated with the original data according to the interface used to define the columns. If not specified, the CSV will be created fromheaders
androws
.
Column Customization:
You can customize the column export using the meta property in the column definition. The exportCsvString
property allows you to define a string that will be used to customize the exported content. You can use ${variable}
...
meta: {
exportCsvString: '${name} more string' // allows you to define a string that will be used to customize the exported content. You can use ${variable} to insert values obtained from getValue.
}
...
Example:
import {
columnDef,
getFilteredRowModel,
useReactTable,
} from "@tanstack/react-table";
import { exportToCsv } from 'tt-export-to-csv'
type User = {
id: string;
first-name: string;
last-name: string;
active: boolean;
};
const columnHelper = createColumnHelper<User>();
const UserColumns: ColumnDef<User>[] = [
{
id: 'name',
header: 'Name',
accesorFn: row => ({ name: row.first-name, lastName: row.last-name id: row.id}),
cell: info => {
const { name, lastName, id } = info.getValue() as {name: string, lastName: string, id: number};
return (
<a href={`/user/profile/${id}`}>
<span>
{`${name}-${lastName}`}
</span>
</a>
)
},
meta: {
exportCsvString: '${name}' // allows you to define a string that will be used to customize the exported content. You can use ${variable} to insert values obtained from getValue.
}
},
{
id: 'state',
header: 'State',
accesorKey: 'active'
}
]
const App: React.FC = () => {
const [data, setData] = React.useState(() => [...defaultData]);
const table = useReactTable({
data,
columns,
getCoreRowModel: getCoreRowModel(),
});
const handleExportToCsv = (): void => {
const headers = table
.getHeaderGroups()
.map((x) => x.headers)
.flat();
const rows = table.getCoreRowModel().rows; // All Rows
const rows = table.getSelectedRowModel().rows; // Selected rows
exportToCsv('users.csv', headers, rows);
};
return(
<>
<button onClick={handleExportToCsv}>Export to csv</button>
</>
)
}