Arbeiten mit Excel in TypeScript: vollständiger Überblick über die Tools
\n\nTypeScript, als statisch typisierte Erweiterung von JavaScript, bietet hervorragende Möglichkeiten zur Erstellung komplexer Unternehmensanwendungen. Eine häufige Aufgabe ist die Arbeit mit Microsoft Excel-Dateien – Lesen, Erstellen und Bearbeiten von Tabellen. In diesem Artikel betrachten wir die besten Bibliotheken für die Arbeit mit Excel in TypeScript, ihre Besonderheiten und geben praktische Codebeispiele.
\n\nBeliebte Bibliotheken für die Arbeit mit Excel
\n\nHeutzutage gibt es mehrere ausgereifte Lösungen. Hier sind die wichtigsten:
\n\n- \n
- ExcelJS – die leistungsstärkste Bibliothek mit Unterstützung für Stile, Formeln, Diagramme und Streaming-Verarbeitung. \n
- xlsx (SheetJS) – eine leichte und schnelle Bibliothek, ideal für einfache Lese-/Schreiboperationen. \n
- node-excel-export – veraltet, aber immer noch in Legacy-Projekten verwendet. \n
- Excel4Node – spezialisiert auf die Erstellung komplexer Berichte mit Formatierung. \n
Für die meisten modernen TypeScript-Projekte empfehlen wir ExcelJS und xlsx (SheetJS). Betrachten wir sie genauer.
\n\nInstallation und Einrichtung
\n\nDie Installation beider Bibliotheken erfolgt über npm:
\n\nnpm install exceljs\nnpm install xlsx\n\nFür TypeScript müssen die Typen installiert werden (falls nicht im Lieferumfang enthalten):
\n\nnpm install --save-dev @types/node\n\nHinweis: ExcelJS wird mit integrierten Typen geliefert, für xlsx müssen die Typen separat installiert werden:
\n\nnpm install --save-dev @types/xlsx\n\nBeispiel 1: Erstellen einer Excel-Datei mit ExcelJS
\n\nErstellen wir eine einfache Tabelle mit Daten und Stilen:
\n\nimport ExcelJS from 'exceljs';\n\nasync function createWorkbook() {\n const workbook = new ExcelJS.Workbook();\n const sheet = workbook.addWorksheet('Bericht');\n\n // Spalten definieren\n sheet.columns = [\n { header: 'ID', key: 'id', width: 10 },\n { header: 'Name', key: 'name', width: 25 },\n { header: 'Datum', key: 'date', width: 15 },\n { header: 'Betrag', key: 'amount', width: 12 }\n ];\n\n // Zeilen hinzufügen\n sheet.addRow({ id: 1, name: 'Ivan Petrov', date: '2024-01-15', amount: 1500.50 });\n sheet.addRow({ id: 2, name: 'Maria Sidorova', date: '2024-02-20', amount: 2300.75 });\n sheet.addRow({ id: 3, name: 'Alexey Ivanov', date: '2024-03-10', amount: 890.25 });\n\n // Kopfzeile formatieren\n const headerRow = sheet.getRow(1);\n headerRow.font = { bold: true, size: 12, color: { argb: 'FFFFFFFF' } };\n headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };\n headerRow.alignment = { horizontal: 'center' };\n\n // Datei speichern\n await workbook.xlsx.writeFile('output.xlsx');\n console.log('Datei erstellt!');\n}\n\ncreateWorkbook();\n\nDieser Code erstellt eine Datei output.xlsx mit drei Datenzeilen und einer ansprechenden Kopfzeile.
Beispiel 2: Lesen einer Excel-Datei mit xlsx (SheetJS)
\n\nLesen wir eine vorhandene Datei und geben die Daten in der Konsole aus:
\n\nimport * as XLSX from 'xlsx';\n\nfunction readExcel(filePath: string) {\n const workbook = XLSX.readFile(filePath);\n const sheetName = workbook.SheetNames[0]; // Erstes Blatt nehmen\n const worksheet = workbook.Sheets[sheetName];\n\n // In JSON umwandeln\n const data: any[] = XLSX.utils.sheet_to_json(worksheet);\n\n console.log('Daten aus der Datei:');\n data.forEach((row, index) => {\n console.log(`Zeile ${index + 1}:`, row);\n });\n\n return data;\n}\n\n// Verwendung\nconst data = readExcel('input.xlsx');\n\nDie Bibliothek xlsx wandelt die Tabelle automatisch in ein Array von Objekten um, wobei die Schlüssel die Spaltenüberschriften sind.
Auch in der Bibliothek
Arbeiten mit YAML in Kotlin: Bibliotheken, Beispiele und Parsing
Überwachung von Node.js-Anwendungen: Tools und Bibliotheken
Reaktive Programmierung in C++: Bibliotheken und Praxis