Arbeiten mit Excel in TypeScript: Bibliotheken, Tools und Codebeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Excel in TypeScript: vollständiger Überblick über die Tools

\n\n

TypeScript, 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\n

Beliebte Bibliotheken für die Arbeit mit Excel

\n\n

Heutzutage 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
\n\n

Für die meisten modernen TypeScript-Projekte empfehlen wir ExcelJS und xlsx (SheetJS). Betrachten wir sie genauer.

\n\n

Installation und Einrichtung

\n\n

Die Installation beider Bibliotheken erfolgt über npm:

\n\n
npm install exceljs\nnpm install xlsx
\n\n

Für TypeScript müssen die Typen installiert werden (falls nicht im Lieferumfang enthalten):

\n\n
npm install --save-dev @types/node
\n\n

Hinweis: ExcelJS wird mit integrierten Typen geliefert, für xlsx müssen die Typen separat installiert werden:

\n\n
npm install --save-dev @types/xlsx
\n\n

Beispiel 1: Erstellen einer Excel-Datei mit ExcelJS

\n\n

Erstellen wir eine einfache Tabelle mit Daten und Stilen:

\n\n
import 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\n

Dieser Code erstellt eine Datei output.xlsx mit drei Datenzeilen und einer ansprechenden Kopfzeile.

\n\n

Beispiel 2: Lesen einer Excel-Datei mit xlsx (SheetJS)

\n\n

Lesen wir eine vorhandene Datei und geben die Daten in der Konsole aus:

\n\n
import * 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\n

Die Bibliothek xlsx wandelt die Tabelle automatisch in ein Array von Objekten um, wobei die Schlüssel die Spaltenüberschriften sind.

Empfehlungen