Biblioteca gratuita de Node.js para crear múltiples gráficos de Excel

Principal biblioteca de Node.js de código abierto para generar gráficos simples y avanzados en una hoja de Excel. Crea varios gráficos en un archivo, gráficos para descargas web y gráficos a partir de una plantilla dentro de Node.js.

¿Qué es XLSX-Chart?

Si trabajas con Node.js y necesitas generar archivos de Excel con gráficos incrustados, el paquete de código abierto XLSX-Chart es una muy buena opción a considerar. Muchas bibliotecas permiten generar hojas de cálculo de Excel, establecer valores de celdas, etc., pero menos soportan gráficos incrustados en el XLSX. XLSX-Chart llena ese vacío. La API es bastante sencilla: especificas el tipo de gráfico, los títulos, los campos, los datos y luego escribe el archivo. Soporta varios tipos (columna, barra, línea, área, radar, dispersión, pastel) para que puedas elegir el que mejor se ajuste a tus datos. Si necesitas mayor control (diseño, estilos), puedes proporcionar tu propia plantilla de Excel para basar la generación del gráfico.

XLSX-Chart es un paquete ligero de Node.js desarrollado por Dmitriy Samortsev que permite a los desarrolladores crear gráficos de Excel de forma programática dentro de aplicaciones Node.js. Te brinda métodos para escribir directamente a un archivo o generar datos binarios (para descarga vía HTTP), lo cual es útil en aplicaciones web. La biblioteca abstrae la complejidad de trabajar con el formato Open XML de Excel, proporcionando una API intuitiva para generar varios tipos de gráficos. Ya sea que estés construyendo paneles de inteligencia empresarial, sistemas de informes automáticos o herramientas de análisis de datos, XLSX-Chart ofrece una solución sencilla para la generación de gráficos de Excel. Su API intuitiva, soporte para múltiples tipos de gráficos y opciones de salida flexibles lo convierten en una excelente elección para desarrolladores que crean sistemas de informes, herramientas de inteligencia empresarial o aplicaciones de visualización de datos.

Previous Next

Comenzando con XLSX-Chart

Para instalar XLSX-Chart, puedes usar npm, el gestor de paquetes para JavaScript. Por favor, utiliza los siguientes comandos para una instalación exitosa.

Instalar XLSX-Chart vía npm

npm install xlsx-chart

Puedes descargar la biblioteca compartida compilada del repositorio de GitHub e instalarla.

Crear un simple gráfico de columnas en Node.js

La biblioteca de código abierto XLSX-Chart incluye soporte completo para crear gráficos simples y avanzados en una hoja de cálculo de Excel dentro de aplicaciones Node.js. El siguiente ejemplo de código crea un gráfico de columnas que compara las ventas trimestrales de cuatro productos. La matriz de títulos representa la serie de datos (trimestres), mientras que los campos representan las categorías (productos). El objeto de datos contiene los valores reales de cada combinación.

Cómo crear un gráfico simple de Excel que muestre ventas trimestrales dentro de Node.js

var XLSXChart = require("xlsx-chart");
var xlsxChart = new XLSXChart();

var opts = {
    file: "sales-report.xlsx",
    chart: "column",
    titles: [
        "Q1 Sales",
        "Q2 Sales",
        "Q3 Sales"
    ],
    fields: [
        "Product A",
        "Product B",
        "Product C",
        "Product D"
    ],
    data: {
        "Q1 Sales": {
            "Product A": 5,
            "Product B": 10,
            "Product C": 15,
            "Product D": 20
        },
        "Q2 Sales": {
            "Product A": 10,
            "Product B": 5,
            "Product C": 20,
            "Product D": 15
        },
        "Q3 Sales": {
            "Product A": 20,
            "Product B": 15,
            "Product C": 10,
            "Product D": 5
        }
    }
};

xlsxChart.writeFile(opts, function(err) {
    if (err) {
        console.error("Error generating chart:", err);
    } else {
        console.log("Chart created successfully:", opts.file);
    }
});

Crear múltiples gráficos en un archivo en Node.js

Una de las características potentes de XLSX-Chart es generar varios gráficos en un solo libro de trabajo dentro de aplicaciones Node.js. La biblioteca permite a los desarrolladores de software crear gráficos con valores personalizados y múltiples visualizaciones. El siguiente ejemplo de código muestra cómo los desarrolladores pueden crear un informe integral con tres tipos diferentes de gráficos. La matriz de gráficos permite definir múltiples visualizaciones, cada una con su propia configuración. La propiedad chartTitle asigna a cada gráfico un nombre descriptivo. Esto es particularmente útil para paneles ejecutivos o informes analíticos detallados.

Cómo crear varios gráficos en un solo archivo dentro de aplicaciones Node.js

let fs = require("fs");
let XLSXChart = require("xlsx-chart");
let xlsxChart = new XLSXChart();

let opts = {
    charts: [{
        chart: "column",
        titles: ["2023", "2024"],
        fields: ["Jan", "Feb", "Mar", "Apr"],
        data: {
            "2023": {
                "Jan": 100,
                "Feb": 120,
                "Mar": 140,
                "Apr": 130
            },
            "2024": {
                "Jan": 110,
                "Feb": 135,
                "Mar": 150,
                "Apr": 145
            }
        },
        chartTitle: "Monthly Performance Comparison"
    }, {
        chart: "line",
        titles: ["Website Traffic", "Mobile Traffic"],
        fields: ["Week 1", "Week 2", "Week 3", "Week 4"],
        data: {
            "Website Traffic": {
                "Week 1": 5000,
                "Week 2": 5500,
                "Week 3": 6000,
                "Week 4": 6200
            },
            "Mobile Traffic": {
                "Week 1": 3000,
                "Week 2": 3500,
                "Week 3": 4200,
                "Week 4": 4800
            }
        },
        chartTitle: "Traffic Analysis"
    }, {
        chart: "pie",
        titles: ["Market Share"],
        fields: ["Company A", "Company B", "Company C", "Others"],
        data: {
            "Market Share": {
                "Company A": 35,
                "Company B": 28,
                "Company C": 22,
                "Others": 15
            }
        },
        chartTitle: "Market Distribution"
    }]
};

xlsxChart.generate(opts, function(err, data) {
    if (err) {
        console.error("Error:", err);
        return;
    }
    fs.writeFileSync("comprehensive-report.xlsx", data);
    console.log("Multi-chart report created successfully!");
});


require('fs').writeFileSync('inventory.xlsx', report);

Generar gráficos para descargas web

La biblioteca de código abierto XLSX-Chart facilita a los desarrolladores de software la generación de gráficos que pueden descargarse fácilmente a través de aplicaciones web. Aquí tienes un ejemplo potente que demuestra cómo generar un gráfico de barras dentro de una ruta Express.js. El método generate devuelve los datos del gráfico como un búfer, que luego se envía al cliente con los encabezados apropiados para la descarga. Este enfoque es ideal para la generación dinámica de informes sin crear archivos temporales en el servidor.

Cómo crear gráficos de Excel para descargas web dentro de Node.js

var XLSXChart = require("xlsx-chart");
var xlsxChart = new XLSXChart();

// Express.js route example
app.get('/download-report', function(req, res) {
    var opts = {
        chart: "bar",
        titles: ["Revenue", "Expenses", "Profit"],
        fields: ["January", "February", "March", "April"],
        data: {
            "Revenue": {
                "January": 50000,
                "February": 55000,
                "March": 60000,
                "April": 58000
            },
            "Expenses": {
                "January": 30000,
                "February": 32000,
                "March": 35000,
                "April": 33000
            },
            "Profit": {
                "January": 20000,
                "February": 23000,
                "March": 25000,
                "April": 25000
            }
        }
    };

    xlsxChart.generate(opts, function(err, data) {
        if (err) {
            return res.status(500).send("Error generating chart");
        }
        
        res.set({
            "Content-Type": "application/vnd.ms-excel",
            "Content-Disposition": "attachment; filename=financial-report.xlsx",
            "Content-Length": data.length
        });
        res.status(200).send(data);
    });
});

Usar plantillas personalizadas para crear gráficos de Excel

For organizations with specific branding requirements, custom templates provide complete control for creating and managing Excel charts. The templatePath option points to a pre-formatted Excel file. XLSX-Chart will use this template as the foundation, applying your data while preserving custom formatting, colors, fonts, and layouts. Note that custom templates currently work best with column charts. The following code demonstrates how to achieve it.

Cómo crear gráficos de Excel mediante plantillas personalizadas dentro de Node.js

var XLSXChart = require("xlsx-chart");
var xlsxChart = new XLSXChart();

var opts = {
    file: "branded-report.xlsx",
    chart: "column",
    templatePath: __dirname + "/templates/company-template.xlsx",
    titles: ["Sales Team A", "Sales Team B"],
    fields: ["Q1", "Q2", "Q3", "Q4"],
    data: {
        "Sales Team A": {
            "Q1": 45000,
            "Q2": 52000,
            "Q3": 58000,
            "Q4": 61000
        },
        "Sales Team B": {
            "Q1": 42000,
            "Q2": 48000,
            "Q3": 55000,
            "Q4": 59000
        }
    }
};

xlsxChart.writeFile(opts, function(err) {
    if (err) {
        console.error("Template error:", err);
    } else {
        console.log("Branded report created!");
    }
});

 Español