Бесплатная библиотека Node.js для создания нескольких графиков Excel

Ведущая открытая библиотека Node.js для генерации простых и продвинутых графиков в листе Excel. Создаёт несколько графиков в одном файле, графики для веб‑загрузок и графики из шаблона внутри Node.js.

Что такое XLSX-Chart?

Если вы работаете в Node.js и вам нужно генерировать файлы Excel со встроенными графиками, открытый пакет XLSX-Chart — отличный вариант. Многие библиотеки позволяют создавать листы Excel, задавать значения ячеек и т.д., но меньше их поддерживают графики/диаграммы, встроенные в XLSX. XLSX-Chart заполняет этот пробел. API достаточно прост: вы указываете тип графика, заголовки, поля, данные и затем записываете файл. Поддерживаются несколько типов (столбчатый, гистограмма, линейный, площадь, radar, scatter, круговой), так что вы можете выбрать наиболее подходящий для ваших данных. Если требуется более детальный контроль (расположение, стили), можно предоставить собственный шаблон Excel, на основе которого будет генерироваться график.

XLSX-Chart — это легковесный пакет Node.js, разработанный Дмитрием Самортцевым, который позволяет разработчикам программно создавать графики Excel внутри приложений Node.js. Он предоставляет методы для записи напрямую в файл или генерации бинарных данных (для загрузки через HTTP), что удобно в веб‑приложениях. Библиотека скрывает сложность работы с форматом Open XML Excel, предоставляя интуитивный API для создания различных типов графиков. Независимо от того, создаёте ли вы бизнес‑аналитические панели, автоматические отчёты или инструменты анализа данных, XLSX-Chart предлагает простое решение для генерации графиков Excel. Его удобный API, поддержка множества типов графиков и гибкие варианты вывода делают его отличным выбором для разработчиков, создающих системы отчётности, инструменты бизнес‑аналитики или приложения визуализации данных.

Previous Next

Начало работы с XLSX-Chart

Для установки XLSX-Chart вы можете использовать npm, менеджер пакетов для JavaScript. Пожалуйста, используйте следующие команды для успешной установки.

Установите XLSX-Chart через npm

npm install xlsx-chart

Вы можете скачать скомпилированную общую библиотеку из репозитория GitHub и установить её.

Создание простого столбчатого графика в Node.js

Открытая библиотека XLSX-Chart включает полную поддержку создания простых и продвинутых графиков в листе Excel внутри приложений Node.js. Следующий пример кода создаёт столбчатый график, сравнивающий квартальные продажи четырёх продуктов. Массив titles представляет серии данных (кварталы), а fields — категории (продукты). Объект data содержит фактические значения для каждой комбинации.

Как создать простой график Excel, показывающий квартальные продажи, в 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);
    }
});

Создание нескольких графиков в одном файле в Node.js

Одной из мощных возможностей XLSX-Chart является создание нескольких графиков в одной рабочей книге внутри приложений Node.js. Библиотека позволяет разработчикам создавать графики с пользовательскими значениями и несколькими визуализациями. Следующий пример кода показывает, как разработчики могут создать комплексный отчёт с тремя разными типами графиков. Массив charts позволяет определять несколько визуализаций, каждая со своей конфигурацией. Свойство chartTitle задаёт каждому графику описательное название. Это особенно полезно для панелей руководства или детализированных аналитических отчётов.

Как создать несколько графиков в одном файле в приложениях 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);

Генерация графиков для веб‑загрузок

Открытая библиотека XLSX-Chart упрощает разработчикам создание графиков, которые можно легко загружать через веб‑приложения. Ниже представлен мощный пример, демонстрирующий генерацию столбчатой диаграммы внутри маршрута Express.js. Метод generate возвращает данные графика в виде буфера, который затем отправляется клиенту с соответствующими заголовками для загрузки. Такой подход идеален для динамического создания отчётов без создания временных файлов на сервере.

Как создать графики Excel для загрузки в вебе в 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);
    });
});

Использование пользовательских шаблонов для создания графиков Excel

Для организаций с конкретными требованиями к брендингу пользовательские шаблоны предоставляют полный контроль над созданием и управлением диаграмм Excel. Параметр templatePath указывает на предварительно отформатированный файл Excel. XLSX-Chart будет использовать этот шаблон в качестве основы, применяя ваши данные, сохраняя пользовательское форматирование, цвета, шрифты и макеты. Обратите внимание, что пользовательские шаблоны в настоящее время лучше всего работают со столбчатыми диаграммами. Ниже приведён код, демонстрирующий, как этого достичь.

Как создать графики Excel с помощью пользовательских шаблонов в 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!");
    }
});

 Русский