Ir al contenido

Exportar Excel

Descarga el informe actual en formato Excel (XLSX) con todas las columnas y totales.

  1. Genera el informe con los filtros deseados.
  2. Clic en “Exportar Excel” (icono de hoja verde con flecha) en la barra de herramientas.
  3. El archivo se descarga automaticamente.

Nombre del archivo: libro_facturas_emitidas_2026_T1.xlsx (varia segun informe)

Estructura:

Fila 1: LIBRO DE FACTURAS EMITIDAS - 2026 - T1
Fila 2: (vacia)
Fila 3: Encabezados (Nº Factura | Fecha | Cliente | NIF/CIF | Base | IVA % | Cuota IVA | Total)
Fila 4+: Datos de facturas
...
Ultima fila: TOTALES

Caracteristicas:

  • Columnas con anchos optimizados para lectura.
  • Formulas de suma en fila de totales.
  • Formato numerico para importes.
  • Fechas en formato DD/MM/YYYY.
  • Archivo descargado en carpeta de Descargas.
  • Toast: “Exportacion completada”.
  • El archivo abre correctamente en Excel/LibreOffice.
  • Los totales coinciden con la tabla en pantalla.
MensajeCausaSolucion
Boton “Exportar” deshabilitadoSin datos para exportarGenera un informe con datos primero
Archivo vacioError al generar datosRecarga la pagina e intenta de nuevo
Detalles técnicos

Biblioteca: XLSX (SheetJS)

Codigo de exportacion:

import * as XLSX from "xlsx";
const exportToExcel = () => {
const wsData = [
[`LIBRO DE FACTURAS ${registerType.toUpperCase()} - ${year}${quarter !== "all" ? ` - T${quarter}` : ""}`],
[],
["Nº Factura", "Fecha", "Cliente", "NIF/CIF", "Base Imponible", "Tipo IVA %", "Cuota IVA", "Total"],
...data.map((record) => [
record.invoice_number,
format(new Date(record.issue_date), "dd/MM/yyyy"),
record.customer_name || "",
record.customer_cif || "",
record.base_imponible,
record.tax_rate,
record.tax_amount,
record.total_amount,
]),
[],
["", "", "", "TOTALES:",
data.reduce((sum, r) => sum + r.base_imponible, 0),
"",
data.reduce((sum, r) => sum + r.tax_amount, 0),
data.reduce((sum, r) => sum + r.total_amount, 0)
],
];
const ws = XLSX.utils.aoa_to_sheet(wsData);
ws["!cols"] = [
{ width: 15 }, { width: 12 }, { width: 30 }, { width: 12 },
{ width: 15 }, { width: 10 }, { width: 12 }, { width: 15 }
];
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, `Facturas ${registerType}`);
XLSX.writeFile(wb, `libro_facturas_${registerType}_${year}${quarter !== "all" ? `_T${quarter}` : ""}.xlsx`);
};