EMZETT.
Login

Excel

Kurz: Microsofts Tabellenkalkulationsprogramm — neben manueller Dateneingabe auch relevant für Entwickler, weil viele Systeme Excel-Import/-Export (.xlsx) unterstützen müssen.

Genauer: Excel bietet neben Formeln und Diagrammen auch eine eigene Skriptsprache (VBA) für Automatisierung. In der Softwareentwicklung taucht Excel häufig als Datenquelle oder -ziel auf (z. B. Kundendaten-Import, Reporting-Export), weshalb es Bibliotheken zum programmatischen Lesen/Schreiben von .xlsx-Dateien in fast jeder Programmiersprache gibt.

Im Detail

Interner Aufbau

Intern ist eine moderne .xlsx-Datei eigentlich ein ZIP-Archiv aus mehreren XML-Dateien (Zellinhalte, Formatierung, Formeln jeweils getrennt gespeichert) — deshalb lassen sich xlsx-Dateien auch ohne Excel selbst öffnen und bearbeiten, solange eine Bibliothek das Format versteht (z. B. openpyxl in Python, ExcelJS in Node.js/JS, oder Apache POI in Java).

import openpyxl
 
wb = openpyxl.load_workbook("verkaeufe.xlsx")
sheet = wb.active
for zeile in sheet.iter_rows(min_row=2, values_only=True):
    print(zeile)

Excel als unvermeidbare Integrationsschnittstelle

Für Entwickler ist Excel oft eine unvermeidbare Integrationsschnittstelle: viele Fachabteilungen liefern oder erwarten Daten als Excel-Tabelle, auch wenn intern längst mit Datenbanken gearbeitet wird — Excel bleibt für Nicht-Techniker oft das vertrauteste Werkzeug zur Dateneinsicht und -bearbeitung. Typische Stolperfallen beim programmatischen Import:

  • Uneinheitliche Datumsformate: je nach Regionaleinstellung interpretiert Excel Datumsangaben unterschiedlich (Tag/Monat/Jahr vs. Monat/Tag/Jahr).
  • Führende Nullen: Excel entfernt sie standardmäßig bei numerisch aussehenden Werten (z. B. bei Postleitzahlen 01234 → 1234), sofern die Zelle nicht explizit als Text formatiert ist.
  • Formeln statt Rohwerten: eine Zelle kann eine Formel enthalten, deren berechnetes Ergebnis separat ausgelesen werden muss — je nach Bibliothek und Lesemodus bekommt man entweder die Formel selbst oder den zuletzt berechneten Wert zurück.
  • Zusammengeführte Zellen: erschweren automatisiertes Parsen erheblich, da die logische Tabellenstruktur nicht mehr eindeutig ist.

VBA und moderne Alternativen

VBA (Visual Basic for Applications) erlaubt es, Abläufe direkt innerhalb von Excel zu automatisieren (Makros) — historisch der Standardweg für Power-User, um repetitive Aufgaben zu automatisieren, ohne eine “richtige” Programmiersprache zu lernen. Mittlerweile wird VBA zunehmend durch Power Query (deklarative Datenaufbereitung ohne klassischen Code) oder externe Skripte (Python, R) abgelöst, die robuster, leichter versionierbar (in Git eincheckbar) und besser testbar sind als in der Excel-Datei selbst eingebettete Makros.

Excel als improvisierte Datenbank

In der Praxis wird Excel häufig für Dinge zweckentfremdet, für die es nicht gebaut wurde — als improvisierte Mini-Datenbank für Bestandslisten, Kundendaten oder Projektpläne, gepflegt von mehreren Personen per E-Mail-Versand der Datei hin und her. Das funktioniert eine Weile, stößt aber schnell an Grenzen: keine echte Nebenläufigkeitskontrolle (zwei Personen bearbeiten gleichzeitig, eine Version überschreibt die andere), keine Versionshistorie im Sinne einer Versionskontrolle, und keine Möglichkeit, komplexere Beziehungen zwischen Datensätzen sauber abzubilden, wie es eine relationale SQL-Datenbank leisten würde. Viele Softwareprojekte entstehen genau aus diesem Schmerzpunkt heraus — eine “echte” Anwendung soll das ersetzen, was zuvor mühsam in Excel verwaltet wurde.

Siehe auch: Word, XML, PowerPoint