Open-Source-Node.js-Bibliothek zum Schreiben von Daten in Excel-Dateien
Eine dedizierte Open-Source-Node.js-Excel‑XLSX-Bibliothek, die eine einfache API zum Erzeugen von .xlsx (Excel)-Dateien bietet und Daten in Excel-Dateien im Streaming‑Verfahren schreibt.
Was ist Node-XLSX-Writer?
In der Welt der Node.js-Entwicklung sind das Erstellen von Berichten und das Exportieren von Daten gängige Anforderungen. Während leistungsstarke Bibliotheken wie exceljs existieren, braucht man manchmal eine Lösung, die sich ausschließlich auf eine Aufgabe konzentriert: das schnelle und effiziente Schreiben von XLSX-Dateien, ohne den Aufwand des Lesens oder Manipulierens vorhandener Dateien. Hier kommt Node-XLSX-Writer ins Spiel, eine leichtgewichtige und unkomplizierte Bibliothek, die genau für diesen Zweck entwickelt wurde. Die Bibliothek sticht durch ihre Einfachheit und fokussierte Funktionalität hervor. Im Gegensatz zu umfassenden Excel-Bibliotheken, die Lesen, Schreiben und Manipulation abdecken, konzentriert sich dieses Modul ausschließlich auf das Schreiben von XLSX-Dateien, wodurch es leichtgewichtig, einfach zu erlernen, schnell implementierbar und zuverlässig ist.
Node-XLSX-Writer ist eine leichtgewichtige und unkomplizierte Bibliothek, die speziell für die Generierung von XLSX (Excel)-Dateien in Node.js-Anwendungen entwickelt wurde. Für Aufgaben wie das Erstellen von CSV-ähnlichen Exporten mit den zusätzlichen Vorteilen der Excel-Formatierung und der Unterstützung mehrerer Arbeitsblätter (über seine unkomplizierte API) ist es eine ausgezeichnete Wahl, die Ihren Code sauber hält und den Speicherverbrauch Ihrer Anwendung gering hält. Erstellt von Ruben Vermeersch und aus Beispiel‑XLSX‑Dateien reverse‑engineered, bietet dieses Modul Entwicklern eine einfache, aber effektive Möglichkeit, Daten in das Excel-Format zu exportieren, ohne die Komplexität größerer Excel-Manipulationsbibliotheken. Damit ist es die ideale Wahl für Anwendungen, die umfangreiche Berichte aus Datenbanken oder APIs generieren müssen, da seine Streaming‑Natur selbst bei riesigen Datensätzen einen geringen Speicherverbrauch gewährleistet.
Erste Schritte mit Node-XLSX-Write
Bevor Sie Node-XLSX-Writer installieren, müssen die libzip-Entwicklungsbibliotheken auf Ihrem System installiert sein. Die Bibliothek ist auf diese nativen Bindungen angewiesen, um Zip-Dateien zu erstellen (XLSX-Dateien sind im Wesentlichen gezippte XML). Bitte verwenden Sie die folgenden Befehle für eine erfolgreiche Installation.
Installiere Node-XLSX-Write via npm
npm install --save xlsx-writerSie können herunterladen die kompilierte Shared Library aus dem GitHub-Repository und sie installieren.
Erstellung von Excel‑XLSX‑Tabellen in Node.js
Die Open-Source-Bibliothek Node-XLSX-Writer enthält Funktionen zum Erstellen und Verarbeiten von Excel‑XLSX-Dateien in Node.js‑Anwendungen. Die Bibliothek benötigt weder Microsoft Excel noch COM‑Interop. Sie erzeugt die XLSX‑Datei (die im Wesentlichen eine ZIP‑Datei aus XML‑Teilen ist) programmgesteuert. Das macht sie für serverseitige Node.js‑Anwendungen geeignet. Das folgende Codebeispiel zeigt die einfachste Methode, eine Excel‑Datei mit einigen Daten zu erzeugen.
Wie erstelle ich eine Excel XLSX-Datei in Node.js-Apps?
// Import the library
const XLSXWriter = require('node-xlsx-writer');
// 1. Create a new instance, specifying the output file path.
const xlsx = new XLSXWriter('./output/simple_report.xlsx');
// 2. Write the header row (optional, but recommended).
xlsx.writeRow(['Name', 'Email', 'Sign-Up Date']);
// 3. Write some data rows.
xlsx.writeRow(['Alice Smith', 'alice@example.com', '2023-10-25']);
xlsx.writeRow(['Bob Johnson', 'bob.j@domain.com', '2023-10-26']);
xlsx.writeRow(['Charlie Brown', 'charlie@brown.com', '2023-10-27']);
// 4. Finalize the file. This step is crucial to save the file properly.
xlsx.finalize();
console.log('Excel file created successfully!');
Streaming für große Datensätze
Hier glänzt Node‑XLSX‑Writer wirklich. Anstatt alle Daten im Speicher zu laden, können Sie Zeilen einzeln streamen. Das ist ideal für die Verarbeitung von Datenbank‑Abfrageergebnissen. Die Bibliothek nutzt Funktionen, um jeden Datensatz aus der Datenbank zu emitieren. Wir schreiben ihn sofort als neue Zeile in die Excel‑Datei. Dieser Ansatz hält die Speichernutzung konstant, egal ob Sie 100 Zeilen oder 1 Million Zeilen exportieren.
Wie führe ich Streaming aus einer Datenbank in Node.js-Apps durch?
// Import the library
const XLSXWriter = require('node-xlsx-writer');
// 1. Create a new instance, specifying the output file path.
const xlsx = new XLSXWriter('./output/simple_report.xlsx');
// 2. Write the header row (optional, but recommended).
xlsx.writeRow(['Name', 'Email', 'Sign-Up Date']);
// 3. Write some data rows.
xlsx.writeRow(['Alice Smith', 'alice@example.com', '2023-10-25']);
xlsx.writeRow(['Bob Johnson', 'bob.j@domain.com', '2023-10-26']);
xlsx.writeRow(['Charlie Brown', 'charlie@brown.com', '2023-10-27']);
// 4. Finalize the file. This step is crucial to save the file properly.
xlsx.finalize();
console.log('Excel file created successfully!');
Benutzerdefinierte Gestaltung (Schriftart, Farbe, Ränder)
Obwohl sie nicht so umfangreich ist wie vollwertige Suites, bietet die Open‑Source‑Bibliothek Node‑XLSX‑Writer essentielle Stiloptionen, um Ihre Berichte professionell aussehen zu lassen. Sie unterstützt verschiedene Funktionen zur Handhabung von Stilen in Tabellenkalkulationen, wie das Fettdrucken oder Kursivsetzen von Schriftarten, das Setzen von Hintergrund‑ und Rahmenfarben, das Definieren von Rahmenstilen (dünn, mittel, dick) usw. Das folgende Beispiel zeigt, wie Entwickler die Kopfzeilenzeile in Node.js‑Apps stylen können.
Wie wende ich Stil auf die Kopfzeilenzeile über eine Node.js-Bibliothek an?
const XLSXWriter = require('node-xlsx-writer');
const xlsx = new XLSXWriter('./output/styled_report.xlsx');
// Define a style object for the header
const headerStyle = {
bold: true,
background: 'FF2A52F5', // Blue background (ARGB Hex format)
color: 'FFFFFFFF', // White text
border: 'thin', // Thin border around cells
borderColor: 'FF000000' // Black border
};
// Apply the style when writing the header row
xlsx.writeRow(['Product', 'Category', 'Price', 'Stock'], headerStyle);
// Data rows are written without a style (or with a different one)
xlsx.writeRow(['Laptop', 'Electronics', 999.99, 15]);
xlsx.writeRow(['Desk Chair', 'Furniture', 249.50, 8]);
xlsx.finalize();