import { storiesOf } from "@storybook/react";
import { ExcelExportButton, IRow, Table, useExportDisplayedTableData } from "@vivid-planet/comet-admin";
import * as React from "react";
interface IExampleRow extends IRow {
id: number;
foo1: string | number | null;
foo2: string;
currency: number;
nestedFoo: {
foo: string;
};
}
const CustomHeader: React.FunctionComponent = () => {
return
Custom Header
;
};
function Story() {
const data: IExampleRow[] = [
{ id: 1, foo1: "blub", foo2: "blub", currency: 22.3, nestedFoo: { foo: "bar" } },
{ id: 2, foo1: "blub", foo2: "blub", currency: -100, nestedFoo: { foo: "bar" } },
{ id: 3, foo1: 1, foo2: "blub", currency: 33, nestedFoo: { foo: "bar" } },
{ id: 4, foo1: null, foo2: "blub", currency: -88.6682, nestedFoo: { foo: "bar" } },
{ id: 5, foo1: 32, foo2: "blub", currency: 10000.46584, nestedFoo: { foo: "bar" } },
];
const exportApi = useExportDisplayedTableData({ fileName: "Custom File Name", worksheetName: "Custom Worksheet Name" });
return (
<>
excel export can export header
},
{
name: "foo2",
header: "Expo",
render: (row) => {row.id},
renderExcel: (row) => row.id.toString(), // HTML Nodes / React Nodes (from above render) can not be exported to excel -> use renderExcel to generate an exportable string
},
{
name: "bar",
visible: false, // hidden columns will be exported hidden
},
{
name: "currency",
header: "Currency",
formatForExcel: `#,##0.00 "€";[Red]"-"#,##0.00" €"`,
},
{
name: "nestedFoo.foo",
header: "Nested foo",
},
{
name: "customheader",
header: Custom Header,
headerExcel: "Overrided Excel Export Header", // HTML Nodes / React Nodes (from above header) can not be exported to excel -> use headerExcel to set an exportable column header
render: (row) => "Custom Row Content", // if render returns a string -> excel export can export this string
},
]}
/>
>
);
}
storiesOf("comet-admin", module).add("Table Export Displayed Table Data", () => );