ExportCSV

Botón de descarga CSV con mapeo de columnas, formato personalizado, BOM UTF-8 y contador de filas.

pnpm dlx nuvo-ui add export-csv

Básico — todas las columnas

Con columnas específicas y formato

Variantes y tamaños

Delimitador personalizado (Excel europeo)

Uso

import { ExportCSV } from "@nuvo-ui/ui"

// Simple — exporta todas las columnas del objeto
<ExportCSV data={rows} filename="reporte" />

// Con columnas específicas y formato
<ExportCSV
  data={rows}
  filename="usuarios"
  delimiter=";"
  columns={[
    { key: "nombre", header: "Nombre" },
    { key: "monto",  header: "Monto $", format: v => Number(v).toFixed(2) },
    { key: "fecha",  header: "Fecha",   format: v => new Date(v).toLocaleDateString() },
  ]}
  onExport={count => toast({ title: `${count} filas exportadas` })}
/>

Props

PropTipoDefaultDescripción
dataRecord<string, unknown>[]Datos a exportar
columnsExportCSVColumn[]autoColumnas con header y formato. Si se omite, infiere las keys del primer objeto
filenamestring"export.csv"Nombre del archivo (con o sin .csv)
delimiter"," | ";" | "\t"","Delimitador de campos
labelstring"Exportar CSV"Texto del botón
variant"default" | "outline" | "ghost""outline"Estilo del botón
size"sm" | "md" | "lg""md"Tamaño del botón
onExport(rowCount: number) => voidCallback tras la descarga