Hvordan lagre regneark som CSV i Python

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-foss

Trinn 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.95

Trinn 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å

 Norsk