Sådan gemmer du regneark som CSV i Python

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

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

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

 Dansk