Exportar Excel
Exportar contenido
Descarga el informe actual en formato Excel (XLSX) con todas las columnas y totales.
- Genera el informe con los filtros deseados.
- Clic en “Exportar Excel” (icono de hoja verde con flecha) en la barra de herramientas.
- El archivo se descarga automaticamente.
Formato del archivo
Sección titulada «Formato del archivo»Nombre del archivo: libro_facturas_emitidas_2026_T1.xlsx (varia segun informe)
Estructura:
Fila 1: LIBRO DE FACTURAS EMITIDAS - 2026 - T1Fila 2: (vacia)Fila 3: Encabezados (Nº Factura | Fecha | Cliente | NIF/CIF | Base | IVA % | Cuota IVA | Total)Fila 4+: Datos de facturas...Ultima fila: TOTALESCaracteristicas:
- Columnas con anchos optimizados para lectura.
- Formulas de suma en fila de totales.
- Formato numerico para importes.
- Fechas en formato DD/MM/YYYY.
Como se que lo hice bien
Sección titulada «Como se que lo hice bien»- Archivo descargado en carpeta de Descargas.
- Toast: “Exportacion completada”.
- El archivo abre correctamente en Excel/LibreOffice.
- Los totales coinciden con la tabla en pantalla.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solucion |
|---|---|---|
| Boton “Exportar” deshabilitado | Sin datos para exportar | Genera un informe con datos primero |
| Archivo vacio | Error al generar datos | Recarga la pagina e intenta de nuevo |
Detalles tecnicos — Exportar Excel
Sección titulada «Detalles tecnicos — Exportar Excel»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`);};