Arbeiten mit Excel in JavaScript (Node.js)
Die moderne Webentwicklung erfordert oft eine programmatische Interaktion mit Tabellenkalkulationen. Der Export von Berichten, der Import von Daten aus Buchhaltungssystemen, die Verarbeitung großer Datenmengen – all das macht die Arbeit mit Excel in Node.js zu einer gefragten Aufgabe. In diesem Artikel betrachten wir die drei beliebtesten Bibliotheken für die Arbeit mit dem XLSX-Format: xlsx, exceljs und excel4node. Sie erfahren, wie Sie jede davon installieren, Excel-Dateien erstellen, bearbeiten und lesen.
Bibliothek xlsx (SheetJS)
xlsx ist die beliebteste und leichtgewichtigste Bibliothek für die Arbeit mit Tabellen in Node.js. Sie unterstützt nicht nur XLSX, sondern auch XLS, CSV, ODS und andere Formate. Der Hauptvorteil liegt in der Einfachheit der API und der hohen Geschwindigkeit.
Installation:
npm install xlsxBeispiel: Erstellen und Schreiben einer Excel-Datei
const XLSX = require('xlsx');
// Erstellen eines Arbeitsblatts mit Datenconst data = [ { Name: 'Anna', Alter: 28, Stadt: 'Moskau' }, { Name: 'Ivan', Alter: 35, Stadt: 'Sankt Petersburg' }, { Name: 'Olga', Alter: 22, Stadt: 'Kasan' }];
const worksheet = XLSX.utils.json_to_sheet(data);const workbook = XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook, worksheet, 'Mitarbeiter');
// Datei speichernXLSX.writeFile(workbook, 'employees.xlsx');console.log('Datei employees.xlsx erstellt!');Beispiel: Lesen einer vorhandenen Datei
const workbook = XLSX.readFile('employees.xlsx');const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log('Daten aus der Datei:', jsonData);Vorteile:
- Minimale Größe (ca. 50 KB komprimiert)
- Unterstützung vieler Formate (XLSX, XLS, CSV, ODS)
- Einfache API für die Konvertierung JSON ↔ Tabelle
Nachteile:
- Eingeschränkte Formatierungsmöglichkeiten (Stile, Schriftarten, Farben)
- Schwierigkeiten mit verbundenen Zellen und komplexen Formeln
Bibliothek exceljs
exceljs ist eine fortschrittliche Bibliothek für die Arbeit mit XLSX-Dateien. Sie bietet vollständige Kontrolle über die Formatierung: Sie können Schriftarten, Farben, Rahmen, verbundene Zellen, bedingte Formatierung verwalten und sogar Bilder hinzufügen.
Installation:
npm install exceljsBeispiel: Erstellen eines formatierten Berichts
const ExcelJS = require('exceljs');
async function createReport() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Bericht');
// Spalten definieren worksheet.columns = [ { header: 'Produkt', key: 'product', width: 20 }, { header: 'Menge', key: 'quantity', width: 15 }, { header: 'Preis', key: 'price', width: 15 } ];
// Daten hinzufügen worksheet.addRow({ product: 'Laptop', quantity: 10, price: 75000 }); worksheet.addRow({ product: 'Maus', quantity: 50, price: 1500 });
// Kopfzeile formatieren const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// Zellen mit Preisen formatieren const priceColumn = worksheet.getColumn(3); priceColumn.numFmt = '#,##0.00';
// Speichern await workbook.xlsx.writeFile('report.xlsx'); console.log('Bericht mit Formatierung erstellt!');}
createReport();Beispiel: Lesen und Ändern einer Datei
const workbook = new ExcelJS.Workbook();await workbook.xlsx.readFile('report.xlsx');const worksheet = w