免费 Node.js 库,创建多个 Excel 图表
顶级开源 Node.js 库,可在 Excel 工作表中生成简易和高级图表。它能够在单个文件中创建多个图表、生成用于网络下载的图表以及从模板生成图表,适用于 Node.js 环境。
XLSX-Chart 是什么?
如果你在 Node.js 环境中需要生成带有嵌入图表的 Excel 文件,开源包 XLSX-Chart 是一个非常值得考虑的选项。许多库可以生成 Excel 工作表、设置单元格值等,但很少有库支持在 XLSX 中嵌入图表。XLSX-Chart 弥补了这一空白。API 使用相当直接——指定图表类型、标题、字段、数据,然后写入文件。它支持多种类型(柱形图、条形图、折线图、面积图、雷达图、散点图、饼图),可以根据数据选择最合适的图表类型。如果需要更细致的控制(布局、样式),还能提供自己的 Excel 模板作为图表生成的基础。
XLSX-Chart 是由 Dmitriy Samortsev 开发的轻量级 Node.js 包,帮助软件开发者在 Node.js 应用中以编程方式创建 Excel 图表。它提供方法直接写入文件或生成二进制数据(用于 HTTP 下载),这在 Web 应用中非常方便。该库封装了处理 Excel Open XML 格式的复杂性,提供直观的 API 来生成各种图表类型。无论是构建商业智能仪表板、自动化报告系统还是数据分析工具,XLSX-Chart 都提供了简洁的 Excel 图表生成方案。其直观的 API、对多种图表类型的支持以及灵活的输出选项,使其成为构建报告系统、商业智能工具或数据可视化应用的理想选择。
XLSX-Chart 入门指南
要安装 XLSX-Chart,您可以使用 npm(JavaScript 的包管理器)。请使用以下命令进行成功安装。
在 Node.js 中创建简易柱形图
开源 XLSX-Chart 库已完整支持在 Node.js 应用中于 Excel 工作表中创建简单和高级图表。以下代码示例创建了一个柱状图,用于比较四种产品的季度销售额。titles 数组表示数据系列(季度),而 fields 表示类别(产品)。data 对象包含每个组合的实际数值。
如何在 Node.js 中创建显示季度销售额的简易 Excel 图表?
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 库使软件开发者能够轻松生成可通过 Web 应用下载的图表。以下是一个强大的示例,演示在 Express.js 路由中生成柱状图。generate 方法将图表数据以缓冲区形式返回,然后通过适当的响应头发送给客户端进行下载。这种方式非常适合在服务器上不创建临时文件的动态报告生成。
如何在 Node.js 中创建用于网页下载的 Excel 图表?
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 将使用此模板作为基础,在保持自定义格式、颜色、字体和布局的同时应用您的数据。请注意,自定义模板目前最适用于柱形图。下面的代码演示了如何实现此功能。
如何使用自定义模板在 Node.js 中创建 Excel 图表?
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!");
}
});