Gratis Node.js-bibliotheek om meerdere Excel-diagrammen te maken
Top open source Node.js-bibliotheek om eenvoudige en geavanceerde diagrammen te genereren in een Excel-werkblad. Het maakt meerdere diagrammen in één bestand, diagrammen voor webdownloads en diagrammen vanuit een sjabloon in Node.js.
Wat is XLSX-Chart?
Als je werkt met Node.js en Excel-bestanden met ingebedde diagrammen moet genereren, is het open‑source pakket XLSX-Chart een zeer goede optie om te overwegen. Veel bibliotheken stellen je in staat om Excel‑werkbladen te maken, celwaarden in te stellen, enz., maar minder ondersteunen diagrammen/graphen die in de XLSX zijn ingebed. XLSX-Chart vult dit gat. De API is redelijk eenvoudig — je geeft het diagramtype, de titels, velden, gegevens op en schrijft vervolgens het bestand. Het ondersteunt verschillende typen (kolom, staaf, lijn, gebied, radar, spreiding, taart) zodat je kunt kiezen wat het beste bij je gegevens past. Als je meer controle nodig hebt (layout, stijlen), kun je je eigen Excel‑sjabloon leveren waarop de diagramgeneratie wordt gebaseerd.
XLSX-Chart is een lichtgewicht Node.js‑pakket ontwikkeld door Dmitriy Samortsev dat softwareontwikkelaars in staat stelt om Excel‑diagrammen programmatisch te maken binnen Node.js‑apps. Het biedt methoden om direct naar een bestand te schrijven of binaire data te genereren (voor download via HTTP), wat handig is in webapplicaties. De bibliotheek abstracteert de complexiteit van het werken met Excel's Open XML‑formaat, en levert een intuïtieve API voor het genereren van verschillende diagramtypen. Of je nu business‑intelligence‑dashboards, geautomatiseerde rapportagesystemen of data‑analysesoftware bouwt, XLSX-Chart biedt een eenvoudige oplossing voor het genereren van Excel‑diagrammen. De intuïtieve API, de ondersteuning voor meerdere diagramtypen en de flexibele uitvoeropties maken het een uitstekende keuze voor ontwikkelaars die rapportagesystemen, business‑intelligence‑tools of data‑visualisatie‑applicaties bouwen.
Aan de slag met XLSX-Chart
Om XLSX-Chart te installeren kun je npm gebruiken, de pakketbeheerder voor JavaScript. Gebruik alstublieft de volgende commando's voor een succesvolle installatie.
Installeer XLSX-Chart via npm
npm install xlsx-chartU kunt downloaden de gecompileerde gedeelde bibliotheek van de GitHub‑repository en deze installeren.
Een eenvoudig kolomdiagram maken in Node.js
De open‑source XLSX-Chart bibliotheek biedt volledige ondersteuning voor het maken van eenvoudige en geavanceerde diagrammen in een Excel‑werkblad binnen Node.js‑applicaties. Het volgende code‑voorbeeld creëert een kolomdiagram dat de kwartaalverkopen van vier producten vergelijkt. De titles‑array vertegenwoordigt de dataseries (kwartalen), terwijl fields de categorieën (producten) vertegenwoordigen. Het data‑object bevat de feitelijke waarden voor elke combinatie.
Hoe maak je een eenvoudig Excel-diagram dat de kwartaalverkopen toont in 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);
}
});
Meerdere diagrammen maken in één bestand in Node.js
Een van de krachtige eigenschappen van XLSX-Chart is het genereren van meerdere diagrammen in één werkmap binnen Node.js‑applicaties. De bibliotheek maakt het mogelijk voor software‑ontwikkelaars om diagrammen te maken met aangepaste waarden en meerdere visualisaties. Het volgende code‑voorbeeld laat zien hoe ontwikkelaars een uitgebreide rapportage kunnen maken met drie verschillende diagramtypen. De charts‑array stelt je in staat meerdere visualisaties te definiëren, elk met hun eigen configuratie. De chartTitle‑eigenschap geeft elk diagram een beschrijvende naam. Dit is vooral nuttig voor Executive‑dashboards of gedetailleerde analytische rapporten.
Hoe maak je meerdere diagrammen in één bestand in Node.js-apps?
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);
Diagrammen genereren voor webdownloads
De open‑source XLSX-Chart bibliotheek maakt het eenvoudig voor software‑ontwikkelaars om diagrammen te genereren die gemakkelijk via een webapplicatie kunnen worden gedownload. Hier is een krachtig voorbeeld dat laat zien hoe je een staafdiagram genereert binnen een Express.js‑route. De generate‑methode retourneert de diagramdata als een buffer, die vervolgens naar de client wordt gestuurd met de juiste headers voor download. Deze aanpak is ideaal voor dynamische rapportgeneratie zonder tijdelijke bestanden op de server aan te maken.
Hoe maak je Excel-diagrammen voor webdownloads in 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);
});
});
Aangepaste sjablonen gebruiken om Excel-diagrammen te maken
Voor organisaties met specifieke merkrichtlijnen bieden aangepaste sjablonen volledige controle over het maken en beheren van Excel‑diagrammen. De optie templatePath verwijst naar een vooraf opgemaakt Excel‑bestand. XLSX-Chart gebruikt dit sjabloon als basis, past uw gegevens toe en behoudt aangepaste opmaak, kleuren, lettertypen en lay‑out. Houd er rekening mee dat aangepaste sjablonen momenteel het beste werken met kolom‑diagrammen. De onderstaande code toont hoe u dit kunt realiseren.
Hoe maak je Excel-diagrammen via aangepaste sjablonen in 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!");
}
});