Excel-Dateien in Python erstellen: Von den Grundlagen bis zur Automatisierung

2025-12-26 03:58:56 zaki zou

Create Excel file in Python using code

Das Erstellen von Excel-Dateien in Python ist eine häufige Anforderung in datengesteuerten Anwendungen. Wenn Anwendungsdaten in einem Format bereitgestellt werden müssen, das von Geschäftsanwendern leicht überprüft und geteilt werden kann, bleibt Excel eine der praktischsten und am weitesten verbreiteten Optionen.

In realen Projekten ist das Erstellen einer Excel-Datei mit Python oft der Ausgangspunkt eines automatisierten Prozesses. Die Daten können aus Datenbanken, APIs oder internen Diensten stammen, und Python ist dafür verantwortlich, diese Daten in eine strukturierte Excel-Datei umzuwandeln, die einem einheitlichen Layout und einer einheitlichen Namenskonvention folgt.

Dieser Artikel zeigt, wie man Excel-Dateien in Python erstellt, vom Erstellen einer Arbeitsmappe von Grund auf über das Schreiben von Daten und das Anwenden grundlegender Formatierungen bis hin zum Aktualisieren vorhandener Dateien bei Bedarf. Alle Beispiele werden aus praktischer Sicht vorgestellt und konzentrieren sich darauf, wie Excel-Dateien in realen Automatisierungsszenarien erstellt und verwendet werden.

Inhaltsverzeichnis


1. Typische Szenarien zum Erstellen von Excel-Dateien mit Python

Das Erstellen von Excel-Dateien mit Python geschieht in der Regel als Teil eines größeren Systems und nicht als eigenständige Aufgabe. Häufige Szenarien sind:

  • Erstellen von täglichen, wöchentlichen oder monatlichen Geschäftsberichten
  • Exportieren von Datenbankabfrageergebnissen zur Analyse oder Prüfung
  • Erstellen von Excel-Dateien aus Backend-Diensten oder Batch-Jobs
  • Automatisierung des Datenaustauschs zwischen internen Systemen oder externen Partnern

In diesen Situationen wird Python oft verwendet, um Excel-Dateien automatisch zu erstellen, was Teams hilft, den manuellen Aufwand zu reduzieren und gleichzeitig die Datenkonsistenz und Wiederholbarkeit zu gewährleisten.


2. Umgebungseinrichtung: Vorbereitung zum Erstellen von Excel-Dateien in Python

In diesem Tutorial verwenden wir Free Spire.XLS for Python, um Excel-Dateivorgänge zu demonstrieren. Bevor Sie Excel-Dateien mit Python erstellen, stellen Sie sicher, dass die Entwicklungsumgebung bereit ist.

Python-Version

Jede moderne Python 3.x-Version ist für Excel-Automatisierungsaufgaben ausreichend.

Free Spire.XLS for Python kann über pip installiert werden:

pip install spire.xls.free

Sie können auch Free Spire.XLS for Python herunterladen und manuell in Ihr Projekt einbinden.

Die Bibliothek funktioniert unabhängig von Microsoft Excel, was sie für Serverumgebungen, geplante Aufträge und automatisierte Arbeitsabläufe geeignet macht, in denen Excel nicht installiert ist.


3. Erstellen einer neuen Excel-Datei von Grund auf in Python

Dieser Abschnitt konzentriert sich auf das Erstellen einer Excel-Datei von Grund auf mit Python. Das Ziel ist es, eine grundlegende Arbeitsmappenstruktur zu definieren, einschließlich Arbeitsblättern und Kopfzeilen, bevor Daten geschrieben werden.

Durch das programmgesteuerte Erstellen des anfänglichen Layouts können Sie sicherstellen, dass alle Ausgabedateien die gleiche Struktur haben und für die spätere Datenbefüllung bereit sind.

Beispiel: Erstellen einer leeren Excel-Vorlage

from spire.xls import Workbook, FileFormat

# Initialize a new workbook
workbook = Workbook()

# Access the default worksheet
sheet = workbook.Worksheets[0]
sheet.Name = "Template"

# Add a placeholder title
sheet.Range["B2"].Text = "Monthly Report Template"

# Save the Excel file
workbook.SaveToFile("template.xlsx", FileFormat.Version2016)
workbook.Dispose()

Die Vorschau der Vorlagendatei:

Creating a Blank Excel Template Using Python

In diesem Beispiel:

  • Workbook() erstellt eine neue Excel-Arbeitsmappe, die bereits drei Standardarbeitsblätter enthält.
  • Auf das erste Arbeitsblatt wird über Worksheets[0] zugegriffen und es wird umbenannt, um die Grundstruktur zu definieren.
  • Die Eigenschaft Range[].Text schreibt Text in eine bestimmte Zelle, sodass Sie Titel oder Platzhalter festlegen können, bevor echte Daten hinzugefügt werden.
  • Die Methode SaveToFile() speichert die Arbeitsmappe in einer Excel-Datei. Und FileFormat.Version2016 gibt die zu verwendende Excel-Version oder das Format an.

Erstellen von Excel-Dateien mit mehreren Arbeitsblättern in Python

Bei der Python-basierten Excel-Erstellung kann eine einzelne Arbeitsmappe mehrere Arbeitsblätter enthalten, um zusammengehörige Daten logisch zu organisieren. Jedes Arbeitsblatt kann einen anderen Datensatz, eine Zusammenfassung oder ein Verarbeitungsergebnis innerhalb derselben Datei speichern.

Das folgende Beispiel zeigt, wie man eine Excel-Datei mit mehreren Arbeitsblättern erstellt und Daten in jedes schreibt.

from spire.xls import Workbook, FileFormat

workbook = Workbook()

# Default worksheet
data_sheet = workbook.Worksheets[0]
data_sheet.Name = "Raw Data"

# Remove the second default worksheet
workbook.Worksheets.RemoveAt(1)

# Add a summary worksheet
summary_sheet = workbook.Worksheets.Add("Summary")

summary_sheet.Range["A1"].Text = "Summary Report"

workbook.SaveToFile("multi_sheet_report.xlsx", FileFormat.Version2016)
workbook.Dispose()

Dieses Muster wird häufig mit Lese-/Schreib-Workflows kombiniert, bei denen Rohdaten in ein Arbeitsblatt importiert und verarbeitete Ergebnisse in ein anderes geschrieben werden.

Excel-Dateiformate in der Python-Automatisierung

Beim programmgesteuerten Erstellen von Excel-Dateien in Python ist XLSX das am häufigsten verwendete Format und wird von modernen Versionen von Microsoft Excel vollständig unterstützt. Es unterstützt Arbeitsblätter, Formeln, Stile und ist für die meisten Automatisierungsszenarien geeignet.

Zusätzlich zu XLSX unterstützt Spire.XLS for Python das Erstellen mehrerer gängiger Excel-Formate, darunter:

  • XLSX – das Standardformat für die moderne Excel-Automatisierung
  • XLS – altes Excel-Format zur Kompatibilität mit älteren Systemen
  • CSV – reines Textformat, das häufig für den Datenaustausch und Importe verwendet wird

In diesem Artikel verwenden alle Beispiele das XLSX-Format, das für die Berichterstellung, strukturierte Datenexporte und vorlagenbasierte Excel-Dateien empfohlen wird. Eine vollständige Liste der unterstützten Formate finden Sie in der FileFormat-Enumeration.


4. Schreiben strukturierter Daten in eine XLSX-Datei mit Python

In realen Anwendungen stammen die in Excel geschriebenen Daten selten aus fest codierten Listen. Sie werden häufiger aus Datenbankabfragen, API-Antworten oder Zwischenverarbeitungsergebnissen generiert.

Ein typisches Muster besteht darin, Excel als endgültiges Lieferformat für bereits strukturierte Daten zu behandeln.

Python-Beispiel: Erstellen eines monatlichen Verkaufsberichts aus Anwendungsdaten

Angenommen, Ihre Anwendung hat bereits eine Liste von Verkaufsdatensätzen erstellt, wobei jeder Datensatz Produktinformationen und berechnete Summen enthält. In diesem Beispiel werden die Verkaufsdaten als eine Liste von Wörterbüchern dargestellt, die von einer Anwendungs- oder Dienstschicht zurückgegebene Datensätze simulieren.

from spire.xls import Workbook

workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "Sales Report"

headers = ["Product", "Quantity", "Unit Price", "Total Amount"]
for col, header in enumerate(headers, start=1):
    sheet.Range[1, col].Text = header

# Data typically comes from a database or service layer
sales_data = [
    {"product": "Laptop", "qty": 15, "price": 1200},
    {"product": "Monitor", "qty": 30, "price": 250},
    {"product": "Keyboard", "qty": 50, "price": 40},
    {"product": "Mouse", "qty": 80, "price": 20},
    {"product": "Headset", "qty": 100, "price": 10}
]

row = 2
for item in sales_data:
    sheet.Range[row, 1].Text = item["product"]
    sheet.Range[row, 2].NumberValue = item["qty"]
    sheet.Range[row, 3].NumberValue = item["price"]
    sheet.Range[row, 4].NumberValue = item["qty"] * item["price"]
    row += 1

workbook.SaveToFile("monthly_sales_report.xlsx")
workbook.Dispose()

Die Vorschau des monatlichen Verkaufsberichts:

Generating a Monthly Sales Report from Application Data Using Python

In diesem Beispiel werden Textwerte wie Produktnamen mit der Eigenschaft CellRange.Text geschrieben, während numerische Felder CellRange.NumberValue verwenden. Dadurch wird sichergestellt, dass Mengen und Preise als Zahlen in Excel gespeichert werden, was eine korrekte Berechnung, Sortierung und Formatierung ermöglicht.

Dieser Ansatz skaliert auf natürliche Weise mit wachsendem Datensatz und hält die Geschäftslogik von der Excel-Ausgabelogik getrennt. Weitere Beispiele zum Schreiben in Excel finden Sie unter Wie man das Schreiben in Excel in Python automatisiert.


5. Formatieren von Excel-Daten für praxisnahe Berichte in Python

In der realen Berichterstattung werden Excel-Dateien oft direkt an die Beteiligten geliefert. Rohdaten ohne Formatierung können schwer zu lesen oder zu interpretieren sein.

Häufige Formatierungsaufgaben sind:

  • Kopfzeilen visuell hervorheben
  • Anwenden von Hintergrundfarben oder Rahmen
  • Formatieren von Zahlen und Währungen
  • Automatisches Anpassen der Spaltenbreiten

Das folgende Beispiel zeigt, wie diese gängigen Formatierungsoperationen zusammen angewendet werden können, um die allgemeine Lesbarkeit eines generierten Excel-Berichts zu verbessern.

Python-Beispiel: Verbesserung der Lesbarkeit von Excel-Berichten

from spire.xls import Workbook, Color, LineStyleType

# Load the created Excel file
workbook = Workbook()
workbook.LoadFromFile("monthly_sales_report.xlsx")

# Get the first worksheet
sheet = workbook.Worksheets[0]

# Format header row
header_range = sheet.Range.Rows[0] # Get the first used row
header_range.Style.Font.IsBold = True
header_range.Style.Color = Color.get_LightBlue()

# Apply currency format
sheet.Range["C2:D6"].NumberFormat = "$#,##0.00"

# Format data rows
for i in range(1, sheet.Range.Rows.Count):
    if i % 2 == 0:
        row_range = sheet.Range[i, 1, i, sheet.Range.Columns.Count]
        row_range.Style.Color = Color.get_LightGreen()
    else:
        row_range = sheet.Range[i, 1, i, sheet.Range.Columns.Count]
        row_range.Style.Color = Color.get_LightYellow()

# Add borders to data rows
sheet.Range["A2:D6"].BorderAround(LineStyleType.Medium, Color.get_LightBlue())

# Auto-fit column widths
sheet.AllocatedRange.AutoFitColumns()

# Save the formatted Excel file
workbook.SaveToFile("monthly_sales_report_formatted.xlsx")
workbook.Dispose()

Die Vorschau des formatierten monatlichen Verkaufsberichts:

Improving Excel Report Readability Using Python

Obwohl die Formatierung für die Datenkorrektheit nicht zwingend erforderlich ist, wird sie in Geschäftsberichten, die geteilt oder archiviert werden, oft erwartet. Weitere fortgeschrittene Formatierungstechniken finden Sie unter Wie man Excel-Arbeitsblätter mit Python formatiert.


6. Lesen und Aktualisieren vorhandener Excel-Dateien in der Python-Automatisierung

Das Aktualisieren einer vorhandenen Excel-Datei beinhaltet normalerweise das Auffinden der richtigen Zeile, bevor neue Werte geschrieben werden. Anstatt eine feste Zelle zu aktualisieren, durchsuchen Automatisierungsskripte oft Zeilen, um übereinstimmende Datensätze zu finden und Aktualisierungen bedingt anzuwenden.

Python-Beispiel: Aktualisieren einer Excel-Datei

from spire.xls import Workbook

workbook = Workbook()
workbook.LoadFromFile("monthly_sales_report.xlsx")
sheet = workbook.Worksheets[0]

# Locate the target row by product name
for row in range(2, sheet.LastRow + 1):
    product_name = sheet.Range[row, 1].Text
    if product_name == "Laptop":
        sheet.Range[row, 5].Text = "Reviewed"
        break

sheet.Range["E1"].Text = "Status"

workbook.SaveToFile("monthly_sales_report_updated.xlsx")
workbook.Dispose()

Die Vorschau des aktualisierten monatlichen Verkaufsberichts:

Updating Excel Worksheet Using Python


7. Kombinieren von Lese- und Schreibvorgängen in einem einzigen Arbeitsablauf

Bei der Arbeit mit importierten Excel-Dateien sind Rohdaten oft nicht sofort für die Berichterstellung oder weitere Analyse geeignet. Häufige Probleme sind doppelte Datensätze, inkonsistente Werte oder unvollständige Zeilen.

Dieser Abschnitt zeigt, wie man vorhandene Excel-Daten liest, normalisiert und das verarbeitete Ergebnis mit Python in eine neue Datei schreibt.

In realen Automatisierungssystemen werden Excel-Dateien oft als Zwischendatenträger und nicht als endgültige Liefergegenstände verwendet.
Sie können von externen Plattformen importiert, von verschiedenen Teams manuell bearbeitet oder von Altsystemen generiert werden, bevor sie weiterverarbeitet werden.

Infolgedessen enthalten rohe Excel-Daten häufig Probleme wie:

  • Mehrere Zeilen für dieselbe Geschäftseinheit
  • Inkonsistente oder nicht-numerische Werte
  • Leere oder unvollständige Datensätze
  • Datenstrukturen, die für die Berichterstellung oder Analyse nicht geeignet sind

Eine häufige Anforderung ist es, unbereinigte Excel-Daten zu lesen, Normalisierungsregeln in Python anzuwenden und die bereinigten Ergebnisse in ein neues Arbeitsblatt zu schreiben, auf das sich nachgelagerte Benutzer verlassen können.

Python-Beispiel: Normalisieren und Aggregieren importierter Verkaufsdaten

In diesem Beispiel enthält eine rohe Verkaufs-Excel-Datei mehrere Zeilen pro Produkt.
Das Ziel ist es, ein sauberes Zusammenfassungsarbeitsblatt zu erstellen, in dem jedes Produkt nur einmal erscheint und dessen Gesamtverkaufsbetrag programmgesteuert berechnet wird.

from spire.xls import Workbook, Color

workbook = Workbook()
workbook.LoadFromFile("raw_sales_data.xlsx")

source = workbook.Worksheets[0]
summary = workbook.Worksheets.Add("Summary")

# Define headers for the normalized output
summary.Range["A1"].Text = "Product"
summary.Range["B1"].Text = "Total Sales"

product_totals = {}

# Read raw data and aggregate values by product
for row in range(2, source.LastRow + 1):
    product = source.Range[row, 1].Text
    value = source.Range[row, 4].Value

    # Skip incomplete or invalid rows
    if not product or value is None:
        continue

    try:
        amount = float(value)
    except ValueError:
        continue

    if product not in product_totals:
        product_totals[product] = 0

    product_totals[product] += amount

# Write aggregated results to the summary worksheet
target_row = 2
for product, total in product_totals.items():
    summary.Range[target_row, 1].Text = product
    summary.Range[target_row, 2].NumberValue = total
    target_row += 1
# Create a total row
summary.Range[summary.LastRow, 1].Text = "Total"
summary.Range[summary.LastRow, 2].Formula = "=SUM(B2:B" + str(summary.LastRow - 1) + ")"

# Format the summary worksheet
summary.Range.Style.Font.FontName = "Arial"
summary.Range[1, 1, 1, summary.LastColumn].Style.Font.Size = 12
summary.Range[1, 1, 1, summary.LastColumn].Style.Font.IsBold = True
for row in range(2, summary.LastRow + 1):
    for column in range(1, summary.LastColumn + 1):
        summary.Range[row, column].Style.Font.Size = 10
summary.Range[summary.LastRow, 1, summary.LastRow, summary.LastColumn].Style.Color = Color.get_LightGray()
summary.Range.AutoFitColumns()

workbook.SaveToFile("normalized_sales_summary.xlsx")
workbook.Dispose()

Die Vorschau der normalisierten Verkaufszusammenfassung:

Normalizing and Aggregating Excel Data Using Python

Python übernimmt die Datenvalidierung, Aggregation und Normalisierungslogik, während Excel das endgültige Lieferformat für Geschäftsanwender bleibt – was die Notwendigkeit einer manuellen Bereinigung oder komplexer Tabellenkalkulationsformeln überflüssig macht.


Auswahl des richtigen Python-Ansatzes zur Erstellung von Excel-Dateien

Python bietet mehrere Möglichkeiten, Excel-Dateien zu erstellen, und der beste Ansatz hängt davon ab, wie Excel in Ihrem Arbeitsablauf verwendet wird.

Free Spire.XLS for Python eignet sich besonders gut für Szenarien, in denen:

  • Excel-Dateien ohne installiertes Microsoft Excel generiert oder aktualisiert werden
  • Dateien von Backend-Diensten, Batch-Jobs oder geplanten Aufgaben erstellt werden
  • Sie eine präzise Kontrolle über die Arbeitsblattstruktur, Formatierung und Formeln benötigen
  • Excel als Liefer- oder Austauschformat und nicht als interaktives Analysewerkzeug verwendet wird

Für die Datenexploration oder statistische Analyse können Python-Benutzer auf andere Bibliotheken zurückgreifen, während sie Excel-Generierungsbibliotheken wie Free Spire.XLS für die Erstellung strukturierter, präsentationsfertiger Dateien in der Endphase verwenden.

Diese Trennung hält die Datenverarbeitungslogik in Python und die Präsentationslogik in Excel, was die Wartbarkeit und Zuverlässigkeit verbessert.

Weitere detaillierte Anleitungen und Beispiele finden Sie im Spire.XLS for Python Tutorial.


8. Häufige Probleme beim Erstellen und Schreiben von Excel-Dateien in Python

Bei der Automatisierung der Excel-Erstellung treten häufig mehrere praktische Probleme auf.

  • Dateipfad- und Berechtigungsfehler

    Überprüfen Sie immer, ob das Zielverzeichnis existiert und der Prozess Schreibzugriff hat, bevor Sie Dateien speichern.

  • Unerwartete Datentypen

    Kontrollieren Sie explizit, ob Werte als Text oder Zahlen geschrieben werden, um Berechnungsfehler in Excel zu vermeiden.

  • Versehentliches Überschreiben von Dateien

    Verwenden Sie zeitgestempelte Dateinamen oder Ausgabeverzeichnisse, um das Überschreiben vorhandener Berichte zu verhindern.

  • Große Datensätze

    Bei der Verarbeitung großer Datenmengen schreiben Sie die Zeilen sequenziell und vermeiden Sie unnötige Formatierungsoperationen innerhalb von Schleifen.

Die frühzeitige Behebung dieser Probleme trägt dazu bei, dass die Excel-Automatisierung auch bei wachsender Datengröße und Komplexität zuverlässig bleibt.


9. Fazit

Das Erstellen von Excel-Dateien in Python ist eine praktische Lösung zur Automatisierung von Berichterstellung, Datenexport und Dokumentenaktualisierungen in realen Geschäftsumgebungen. Durch die Kombination von Dateierstellung, strukturiertem Datenschreiben, Formatierung und Aktualisierungs-Workflows kann die Excel-Automatisierung über einmalige Skripte hinausgehen und Teil eines stabilen Systems werden.

Spire.XLS for Python bietet eine zuverlässige Möglichkeit, diese Operationen in Umgebungen zu implementieren, in denen Automatisierung, Konsistenz und Wartbarkeit unerlässlich sind. Sie können eine temporäre Lizenz beantragen, um das volle Potenzial der Python-Automatisierung bei der Verarbeitung von Excel-Dateien auszuschöpfen.


FAQ: Erstellen von Excel-Dateien in Python

Kann Python Excel-Dateien ohne installiertes Microsoft Excel erstellen?

Ja. Bibliotheken wie Spire.XLS for Python arbeiten unabhängig von Microsoft Excel und eignen sich daher für Server, Cloud-Umgebungen und automatisierte Arbeitsabläufe.

Ist Python für die Erstellung großer Excel-Dateien geeignet?

Python kann große Excel-Dateien effektiv erstellen, vorausgesetzt, die Daten werden sequenziell geschrieben und unnötige Formatierungsoperationen innerhalb von Schleifen werden vermieden.

Wie kann ich das Überschreiben vorhandener Excel-Dateien verhindern?

Ein gängiger Ansatz ist die Verwendung von zeitgestempelten Dateinamen oder dedizierten Ausgabeverzeichnissen beim Speichern generierter Excel-Berichte.

Kann Python Excel-Dateien aktualisieren, die von anderen Systemen erstellt wurden?

Ja. Python kann Excel-Dateien lesen, ändern und erweitern, die von anderen Anwendungen erstellt wurden, solange das Dateiformat unterstützt wird.

Siehe auch

Coupon Code Copied!

Christmas Sale

Celebrate the season with exclusive savings

Save 10% Sitewide

Use Code:

View Campaign Details