AdaptTable for Mantine

Export and print in Mantine

One exportCsv() feature puts an export button in the toolbar, and one scope decides what leaves: the current page, every filtered row, or exactly the cells selected.

Swap the writer and the same button produces a different file. xlsxWriter writes Excel outline levels for grouped rows and bolds the totals; pdfWriter lays out a paginated document, right-to-left scripts included when you hand it a font.

Past the 50,000-row browser cap, onExportAll sends the page-free current view to your backend while the kit shows determinate or indeterminate progress, Cancel, Retry, and the finished download.

printTable opens the browser's own print dialog against a layout built for paper rather than a screenshot of the page.

The export control is a Mantine Button in the kit's toolbar, and its busy state is Mantine's — the file is written off the main thread either way.

The code

import { DataTable } from "@adapttable/mantine";
import { exportCsv } from "@adapttable/mantine/export";

export function People({ source, columns, api }) {
  return (
    <DataTable
      source={source}
      columns={columns}
      rowKey={(row) => row.id}
      features={[
        exportCsv({
          scope: "all",
          onExportAll: async (query, controls) =>
            api.buildExport(query, {
              signal: controls.signal,
              onProgress: controls.setProgress,
              onMessage: controls.setMessage,
            }),
        }),
      ]}
    />
  );
}

Install

pnpm add @adapttable/mantine @adapttable/core @mantine/core @mantine/hooks

The same feature in the other kits

More Mantine features

Reference: exporting, export-pdf. More of this kit: AdaptTable for Mantine, or the live demo.