Wie man Tabellenkalkulationen als CSV in Python speichert

Wie man Tabellenkalkulationen als CSV in Python speichert

Problem

Speichern Sie eine Excel-Arbeitsmappe (.xlsx) als CSV-Datei mit Aspose.Cells FOSS in Python. Laden Sie die Arbeitsmappe mit Workbook(), dann rufen Sie save_as_csv() auf, um das aktive Arbeitsblatt in eine durch Kommas getrennte Datei zu schreiben. Optional können Sie ein CSVSaveOptions-Objekt übergeben, um Trennzeichen, Kodierung und Anführungsverhalten zu steuern.

Voraussetzungen

Um Tabellenkalkulationen als CSV mit Aspose.Cells FOSS in Python zu speichern, stellen Sie sicher, dass Ihre Umgebung die folgenden Anforderungen erfüllt.

  • Python 3.7 oder höher installiert
  • Installieren Sie Aspose.Cells FOSS über pip install aspose-cells-foss>=26.3.1
  • Importieren Sie die Bibliothek mit from aspose.cells_foss import Workbook
  • Grundkenntnisse der Dateiverarbeitung in Python

Speicherungsschritte

Schritt 1: Bibliothek installieren

Installieren Sie Aspose.Cells FOSS von PyPI. Für die FOSS-Nutzung ist keine Lizenzdatei erforderlich.

pip install aspose-cells-foss

Schritt 2: Arbeitsmappe laden

Instanziieren Sie Workbook mit dem Pfad zu einer vorhandenen .xlsx-Datei. Der Konstruktor akzeptiert einen optionalen password-Parameter für geschützte Arbeitsmappen.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Um mit einer brandneuen Arbeitsmappe zu arbeiten, lassen Sie den Dateipfad weg:

from aspose.cells_foss import Workbook

workbook = Workbook()
worksheet = workbook.worksheets[0]

# Populate some cells
worksheet.cells["A1"].value = "Product"
worksheet.cells["B1"].value = "Price"
worksheet.cells["A2"].value = "Widget"
worksheet.cells["B2"].value = 9.99
worksheet.cells["A3"].value = "Gadget"
worksheet.cells["B3"].value = 24.95

Schritt 3: Aktives Blatt als CSV speichern

Rufen Sie Workbook.save_as_csv() mit dem gewünschten Ausgabepfad auf. Die Methode schreibt standardmäßig das erste (aktive) Arbeitsblatt.

workbook.save_as_csv("output.csv")

Alternativ verwenden Sie die generische Methode Workbook.save() — Aspose.Cells FOSS leitet das CSV-Format aus der Erweiterung .csv ab:

workbook.save("output.csv")

Beide Aufrufe erzeugen identische Ausgaben, wenn keine benutzerdefinierten Optionen benötigt werden.

Schritt 4: Mit CSV-Optionen speichern

Workbook.save_as_csv() akzeptiert eine optionale CSVSaveOptions-Instanz als zweites Argument. Instanziieren Sie CSVSaveOptions aus aspose.cells_foss.csv_handler und übergeben Sie es direkt, um das Exportverhalten zu steuern, z. B. die Wahl eines nicht standardmäßigen Trennzeichens oder einer Kodierung.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions

workbook = Workbook("input.xlsx")

# Create options instance — configure attributes per your environment's needs
options = CSVSaveOptions()

workbook.save_as_csv("output_custom.csv", options)

Wenn kein CSVSaveOptions übergeben wird, verwendet save_as_csv() die eingebauten Standardwerte der Bibliothek (Kommatrennzeichen, UTF-8-Kodierung). Übergeben Sie das Optionsobjekt immer dann, wenn Sie diese Standardwerte programmatisch überschreiben müssen.

Schritt 5: Bestimmtes Arbeitsblatt exportieren

Wenn eine Arbeitsmappe mehrere Blätter enthält, wird das aktive Blatt exportiert. Verwenden Sie Workbook.set_active_worksheet(), um vor dem Speichern auszuwählen, welches Blatt exportiert werden soll.

from aspose.cells_foss import Workbook

workbook = Workbook("multi_sheet.xlsx")

# Export the second worksheet (index 1)
workbook.set_active_worksheet(1)
workbook.save_as_csv("sheet2_output.csv")

Um jedes Blatt in eine eigene CSV-Datei zu exportieren, iterieren Sie über workbook.worksheets:

from aspose.cells_foss import Workbook

workbook = Workbook("multi_sheet.xlsx")

for index in range(len(workbook.worksheets)):
    ws = workbook.get_worksheet_by_index(index)
    workbook.set_active_worksheet(index)
    workbook.save_as_csv(f"sheet_{ws.name}.csv")

Vollständiges Beispiel

Das folgende eigenständige Beispiel erstellt eine Arbeitsmappe, füllt sie mit Beispieldaten und speichert sie sowohl als Standard-CSV als auch als semikolon-getrenntes CSV.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions

# Create workbook and populate data
workbook = Workbook()
worksheet = workbook.worksheets[0]

headers = ["Name", "Department", "Salary"]
rows = [
    ["Alice", "Engineering", 95000],
    ["Bob",   "Marketing",   72000],
    ["Carol", "Finance",     81000],
]

for col, header in enumerate(headers):
    col_letter = chr(ord("A") + col)
    worksheet.cells[f"{col_letter}1"].value = header

for row_idx, row in enumerate(rows, start=2):
    for col_idx, val in enumerate(row):
        col_letter = chr(ord("A") + col_idx)
        worksheet.cells[f"{col_letter}{row_idx}"].value = val

# Save as standard CSV (default options)
workbook.save_as_csv("employees.csv")

# Save with explicit CSVSaveOptions instance
options = CSVSaveOptions()
workbook.save_as_csv("employees_custom.csv", options)

print("CSV files written successfully.")

Häufige Probleme

Leere Ausgabedatei

Wenn die Ausgabe-CSV leer ist oder nur leere Zeilen enthält, überprüfen Sie, ob Zellwerte vor dem Aufruf von save_as_csv() zugewiesen wurden. Die Methode exportiert das aktive Arbeitsblatt — bestätigen Sie, dass das richtige Blatt mit workbook.get_active_worksheet() aktiv ist.

Kodierungsprobleme (unleserliche Zeichen)

Beim Öffnen einer CSV in Excel und dem Anzeigen beschädigter Zeichen überprüfen Sie die beim Export verwendete Kodierung. Aspose.Cells FOSS verwendet standardmäßig UTF-8; Excel unter Windows erwartet möglicherweise eine Byte-Reihenfolge-Markierung (BOM), um die Kodierung korrekt zu erkennen. Konfigurieren Sie die Kodierung über CSVSaveOptions und übergeben Sie sie an save_as_csv().

Arbeitsmappen mit mehreren Blättern exportieren nur ein Blatt

CSV ist ein Einzeltabellenformat; pro Datei kann nur ein Arbeitsblatt gespeichert werden. Exportieren Sie jedes Blatt einzeln mit set_active_worksheet(index) wie in Schritt 5 gezeigt.

Zellen mit dem Trennzeichen

Wenn ein Zellwert das Trennzeichen enthält (z. B. ein Komma in einer kommagetrennnten Ausgabe), setzt Aspose.Cells FOSS den Wert beim Export automatisch in Anführungszeichen. Verwenden Sie CSVSaveOptions, um das Anführungsverhalten bei Bedarf anzupassen.

Häufig gestellte Fragen

F: Erzeugt workbook.save("output.csv") das gleiche Ergebnis wie save_as_csv()?

Ja. Workbook.save() prüft die Dateiendung und delegiert an save_as_csv(), wenn die Erweiterung .csv ist. Rufen Sie save_as_csv() direkt auf und übergeben Sie eine CSVSaveOptions-Instanz, wenn Sie den Export über die eingebauten Standardwerte hinaus anpassen müssen.

F: Kann ich in einen CSV-String statt in eine Datei exportieren?

Ja. Verwenden Sie CSVHandler.save_csv_to_string(workbook, options) aus aspose.cells_foss.csv_handler. Dies gibt den CSV-Inhalt als Python-String zurück, den Sie in einen Stream schreiben, hochladen oder weiterverarbeiten können, ohne das Dateisystem zu berühren.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVHandler, CSVSaveOptions

workbook = Workbook("input.xlsx")
csv_string = CSVHandler().save_csv_to_string(workbook, CSVSaveOptions())
print(csv_string)

F: Wie lade ich eine CSV nach dem Speichern wieder in eine Arbeitsmappe?

Verwenden Sie Workbook.load_csv("file.csv") auf einer vorhandenen Workbook-Instanz, oder rufen Sie die Hilfsfunktion load_csv_workbook("file.csv") aus aspose.cells_foss.csv_handler auf, um eine einsatzbereite Arbeitsmappe in einem Schritt zu erhalten.

F: Welche Python-Versionen werden unterstützt?

Aspose.Cells FOSS erfordert Python 3.7 oder höher. Für den CSV-Export sind keine zusätzlichen nativen Erweiterungen erforderlich; die Bibliothek ist reines Python.

F: Kann ich nur einen Teil eines Arbeitsblatts (einen Zellbereich) als CSV speichern?

Aspose.Cells FOSS exportiert den vollständigen verwendeten Bereich des aktiven Arbeitsblatts. Um die Ausgabe auf einen bestimmten Bereich zu beschränken, kopieren Sie die gewünschten Zellen in eine temporäre Arbeitsmappe und exportieren Sie diese Arbeitsmappe.

Siehe auch

 Deutsch