Hvordan lagre regneark som CSV i Python
Problem
Lagre en Excel‑arbeidsbok (.xlsx) som en CSV‑fil ved hjelp av Aspose.Cells FOSS i Python. Last inn arbeidsboken med Workbook(), og kall deretter save_as_csv() for å skrive det aktive regnearket til en kommaseparert verdifil. Eventuelt kan du sende et CSVSaveOptions‑objekt for å kontrollere skilletegnet, tegnkoding og sitattegnoppførsel.
Forutsetninger
For å lagre regneark som CSV ved hjelp av Aspose.Cells FOSS i Python, sørg for at miljøet ditt oppfyller følgende krav.
- Python 3.7 eller nyere installert
- Installer Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importer biblioteket ved hjelp av
from aspose.cells_foss import Workbook - Grunnleggende kjennskap til Python‑filhåndtering
Lagringssteg
Trinn 1: Installer biblioteket
Installer Aspose.Cells FOSS fra PyPI. Ingen lisensfil er nødvendig for FOSS‑bruk.
pip install aspose-cells-fossTrinn 2: Last inn arbeidsboken
Instansier Workbook med banen til en eksisterende .xlsx‑fil. Konstruktøren godtar en valgfri password‑parameter for beskyttede arbeidsbøker.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")For å jobbe med en helt ny arbeidsbok i stedet, utelat 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.95Trinn 3: Lagre det aktive arket som CSV
Kall Workbook.save_as_csv() med ønsket utdata‑sti. Metoden skriver som standard det første (aktive) regnearket.
workbook.save_as_csv("output.csv")Alternativt kan du bruke den generiske Workbook.save()‑metoden — Aspose.Cells FOSS utleder CSV‑formatet fra .csv‑utvidelsen:
workbook.save("output.csv")Begge kallene produserer identisk output når ingen tilpassede alternativer er nødvendige.
Trinn 4: Lagre med CSV-alternativer
Workbook.save_as_csv() godtar en valgfri CSVSaveOptions‑instans som sitt andre argument. Instansier CSVSaveOptions fra aspose.cells_foss.csv_handler og send den direkte for å kontrollere eksportadferd, for eksempel ved å velge et ikke‑standard skilletegn eller en annen koding.
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 blir sendt, bruker save_as_csv() bibliotekets innebygde standarder (kommadeling, UTF-8‑koding). Send options‑objektet når du trenger å overstyre disse standardene programmatisk.
Steg 5: Eksporter et spesifikt regneark
Når en arbeidsbok inneholder flere ark, eksporteres det aktive arket. Bruk Workbook.set_active_worksheet() for å velge hvilket ark som skal eksporteres før lagring.
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 å 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")Fullstendig eksempel
Følgende selvstendige eksempel oppretter en arbeidsbok, fyller den med eksempeldata, og lagrer den både som en standard CSV og som en semikolonseparert 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.")Vanlige problemer
Tom utdatafil
Hvis den genererte CSV‑filen er tom eller kun inneholder blanke linjer, verifiser at celleverdier ble tildelt før du kaller save_as_csv(). Metoden eksporterer det aktive regnearket — bekreft at riktig ark er aktivt ved å bruke workbook.get_active_worksheet().
Kodingsproblemer (Uklare tegn)
Når du åpner en CSV i Excel og ser korrupte tegn, verifiser kodingen som ble brukt under eksporten. Aspose.Cells FOSS bruker UTF-8 som standard; Excel på Windows kan forvente et byte-order mark (BOM) for å gjenkjenne kodingen riktig. Konfigurer kodingen via CSVSaveOptions og send den til save_as_csv().
Arbeidsbøker med flere ark eksporterer kun ett ark
CSV er et enkelt‑tabellformat; kun ett regneark kan lagres per fil. Eksporter hvert ark individuelt ved å bruke set_active_worksheet(index) som vist i trinn 5.
Celler som inneholder skilletegnet
Hvis en celleverdi inneholder skilletegnet (f.eks. et komma i komma‑separert utdata), vil Aspose.Cells FOSS automatisk sette verdien i anførselstegn under eksport. Bruk CSVSaveOptions for å tilpasse anførselstegns‑atferden om nødvendig.
Ofte stilte spørsmål
Q: Produserer workbook.save("output.csv") samme resultat som save_as_csv()?
Ja. Workbook.save() inspiserer filendelsen og delegere til save_as_csv() når endelsen er .csv. Kall save_as_csv() direkte og send inn en CSVSaveOptions‑instans når du trenger å tilpasse eksporten utover de innebygde standardene.
Q: Kan jeg eksportere til en CSV‑streng i stedet for en fil?
Ja. Bruk CSVHandler.save_csv_to_string(workbook, options) fra aspose.cells_foss.csv_handler. Dette returnerer CSV‑innholdet som en Python‑streng, som du kan skrive til en strøm, laste opp, eller videre behandle uten å berøre 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 laster jeg en CSV tilbake inn i en arbeidsbok etter lagring?
Bruk Workbook.load_csv("file.csv") på en eksisterende Workbook‑instans, eller kall den praktiske funksjonen load_csv_workbook("file.csv") fra aspose.cells_foss.csv_handler for å få en klar‑til‑bruk arbeidsbok i ett steg.
Q: Hvilke Python‑versjoner støttes?
Aspose.Cells FOSS krever Python 3.7 eller nyere. Ingen ekstra native‑utvidelser er nødvendige for CSV‑eksport; biblioteket er ren Python.
Q: Kan jeg lagre kun en del av et regneark (et celleområde) som CSV?
Aspose.Cells FOSS eksporterer hele det brukte området i det aktive regnearket. For å begrense utdata til et spesifikt område, kopier de ønskede cellene til en midlertidig arbeidsbok og eksporter den arbeidsboken.
Se også
- Hvordan lagre filer med Aspose.Cells FOSS — generell lagringsoversikt som dekker XLSX og Markdown
- Hvordan konvertere CSV til JSON i Python — last inn CSV og eksporter til JSON-format
- Hvordan eksportere Excel til Markdown i Python — Markdown‑tabell eksport ved bruk av
save_as_markdown() - Aspose.Cells FOSS for Python: Utviklerguide — omfattende funksjonsdokumentasjon
- API-referanse —
Workbook,CSVHandler,CSVSaveOptions