Sådan gemmer du regneark som CSV i Python
Problem
Gem en Excel‑arbejdsbog (.xlsx) som en CSV‑fil ved hjælp af Aspose.Cells FOSS i Python. Indlæs arbejdsbogen med Workbook(), og kald derefter save_as_csv() for at skrive det aktive regneark til en kommasepareret værdifil. Eventuelt kan du videregive et CSVSaveOptions‑objekt for at styre skilletegnet, kodningen og anførselstegnsadfærden.
Forudsætninger
For at gemme regneark som CSV ved hjælp af Aspose.Cells FOSS i Python, skal du sikre, at dit miljø opfylder følgende krav.
- Python 3.7 eller nyere installeret
- Installer Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importér biblioteket ved hjælp af
from aspose.cells_foss import Workbook - Grundlæggende kendskab til Python filhåndtering
Gem trin
Trin 1: Installer biblioteket
Installer Aspose.Cells FOSS fra PyPI. Ingen licensfil er påkrævet for FOSS‑brug.
pip install aspose-cells-fossTrin 2: Indlæs arbejdsbogen
Instansier Workbook med stien til en eksisterende .xlsx-fil. Konstruktoren accepterer en valgfri password-parameter for beskyttede arbejdsbøger.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")For at arbejde med en splinterny projektmappe i stedet, udelad filstien:
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.95Trin 3: Gem det aktive ark som CSV
Kald Workbook.save_as_csv() med den ønskede outputsti. Metoden skriver som standard det første (aktive) regneark.
workbook.save_as_csv("output.csv")Alternativt kan du bruge den generiske Workbook.save() metode — Aspose.Cells FOSS udleder CSV‑formatet ud fra .csv‑udvidelsen:
workbook.save("output.csv")Begge kald giver identisk output, når der ikke er brug for brugerdefinerede indstillinger.
Trin 4: Gem med CSV-indstillinger
Workbook.save_as_csv() accepterer en valgfri CSVSaveOptions-instans som sit andet argument. Opret CSVSaveOptions fra aspose.cells_foss.csv_handler og videregiv den direkte for at styre eksportadfærden, såsom at vælge en ikke‑standard delimiter eller kodning.
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)Når ingen CSVSaveOptions videregives, bruger save_as_csv() bibliotekets indbyggede standardindstillinger (kommaadskiller, UTF-8‑kodning). Videregiv options object, når du har brug for at tilsidesætte disse standardindstillinger programmatisk.
Trin 5: Eksporter et specifikt regneark
Når en projektmappe indeholder flere ark, eksporteres det aktive ark. Brug Workbook.set_active_worksheet() til at vælge, hvilket ark der skal eksporteres, før du gemmer.
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")For at eksportere hvert ark til sin egen CSV‑fil, iterer over 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")Komplett eksempel
Det følgende selvstændige eksempel opretter en arbejdsbog, udfylder den med eksempeldata og gemmer den både som en standard‑CSV og som en semikolon‑adskilt 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.")Almindelige problemer
Tom outputfil
Hvis output‑CSV’en er tom eller kun indeholder tomme linjer, skal du kontrollere, at celleværdier blev tildelt, før du kalder save_as_csv(). Metoden eksporterer det aktive regneark — bekræft, at det korrekte ark er aktivt ved hjælp af workbook.get_active_worksheet().
Kodningsproblemer (Forvrængede tegn)
Når du åbner en CSV i Excel og ser korrupte tegn, skal du kontrollere den kodning, der blev brugt ved eksport. Aspose.Cells FOSS bruger som standard UTF-8; Excel på Windows kan forvente et byte-order mark (BOM) for at genkende kodningen korrekt. Konfigurer kodning via CSVSaveOptions og send den til save_as_csv().
Multi-ark arbejdsbøger eksporter kun ét ark
CSV er et enkelt‑tabelformat; kun ét regneark kan gemmes pr. fil. Eksporter hvert ark individuelt ved hjælp af set_active_worksheet(index) som vist i trin 5.
Celler, der indeholder afgrænsningstegnet
Hvis en celleværdi indeholder skilletegnet (f.eks. et komma i komma‑separeret output), Aspose.Cells FOSS citerer automatisk værdien under eksport. Brug CSVSaveOptions til at tilpasse citeringsadfærden om nødvendigt.
FAQ
Q: Giver workbook.save("output.csv") samme resultat som save_as_csv()?
Ja. Workbook.save() undersøger filendelsen og delegere til save_as_csv() når filendelsen er .csv. Kald save_as_csv() direkte og videregiv en CSVSaveOptions-instans, når du har brug for at tilpasse eksporten ud over de indbyggede standardindstillinger.
Q: Kan jeg eksportere til en CSV‑streng i stedet for en fil?
Ja. Brug CSVHandler.save_csv_to_string(workbook, options) fra aspose.cells_foss.csv_handler. Dette returnerer CSV‑indholdet som en Python‑streng, som du kan skrive til en strøm, uploade eller viderebehandle uden at røre ved filsystemet.
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)Q: Hvordan indlæser jeg en CSV tilbage i en arbejdsbog efter at have gemt?
Brug Workbook.load_csv("file.csv") på en eksisterende Workbook‑instans, eller kald bekvemmelighedsfunktionen load_csv_workbook("file.csv") fra aspose.cells_foss.csv_handler for at få en klar‑til‑brug arbejdsbog i ét trin.
Q: Hvilke Python-versioner understøttes?
Aspose.Cells FOSS kræver Python 3.7 eller senere. Ingen yderligere native udvidelser er nødvendige for CSV-eksport; biblioteket er ren Python.
Q: Kan jeg gemme kun en del af et regneark (et celleområde) som CSV?
Aspose.Cells FOSS eksporterer det fulde anvendte område af det aktive regneark. For at begrænse output til et specifikt område, kopier de ønskede celler til en midlertidig projektmappe og eksporter den projektmappe.
Se også
- Sådan gemmer du filer med Aspose.Cells FOSS — generel oversigt over gemning, dækker XLSX og Markdown
- Sådan konverterer du CSV til JSON i Python — indlæs CSV og eksporter til JSON-format
- Sådan eksporterer du Excel til Markdown i Python — Markdown‑tabel‑eksport ved brug af
save_as_markdown() - Aspose.Cells FOSS for Python: Udviklerguide — omfattende funktionsdokumentation
- API‑reference —
Workbook,CSVHandler,CSVSaveOptions