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-fossSchritt 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.95Schritt 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
- Wie man Dateien mit Aspose.Cells FOSS speichert — allgemeine Speicherübersicht für XLSX und Markdown
- CSV in JSON konvertieren in Python — CSV laden und in das JSON-Format exportieren
- Excel in Markdown exportieren in Python — Markdown-Tabellenexport mit
save_as_markdown() - Aspose.Cells FOSS für Python: Entwicklerhandbuch — umfassende Funktionsdokumentation
- API-Referenz —
Workbook,CSVHandler,CSVSaveOptions