Hoe spreadsheets opslaan als CSV in Python

Hoe spreadsheets opslaan als CSV in Python

Probleem

Bewaar een Excel‑werkmap (.xlsx) als een CSV‑bestand met Aspose.Cells FOSS in Python. Laad de werkmap met Workbook(), roep vervolgens save_as_csv() aan om het actieve werkblad naar een door komma’s gescheiden waarden‑bestand te schrijven. Optioneel kun je een CSVSaveOptions‑object doorgeven om de scheidingsteken, codering en aanhalingsteken‑gedrag te regelen.

Voorvereisten

Om spreadsheets op te slaan als CSV met Aspose.Cells FOSS in Python, zorg ervoor dat uw omgeving voldoet aan de volgende vereisten.

  • Python 3.7 of hoger geïnstalleerd
  • Installeer Aspose.Cells FOSS via pip install aspose-cells-foss>=26.3.1
  • Importeer de bibliotheek met from aspose.cells_foss import Workbook
  • Basiskennis van Python‑bestandshandeling

Stappen opslaan

Stap 1: Installeer de bibliotheek

Installeer Aspose.Cells FOSS vanaf PyPI. Er is geen licentiebestand vereist voor FOSS‑gebruik.

pip install aspose-cells-foss

Stap 2: Laad de Werkmap

Instantieer Workbook met het pad naar een bestaand .xlsx‑bestand. De constructor accepteert een optionele password‑parameter voor beveiligde werkboeken.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Om in plaats daarvan met een gloednieuwe werkmap te werken, laat het bestandspad 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.95

Stap 3: Sla het actieve blad op als CSV

Roep Workbook.save_as_csv() aan met het gewenste uitvoerpad. De methode schrijft standaard het eerste (actieve) werkblad.

workbook.save_as_csv("output.csv")

Gebruik eventueel de generieke Workbook.save()-methode — Aspose.Cells FOSS leidt het CSV‑formaat af van de .csv‑extensie:

workbook.save("output.csv")

Beide oproepen leveren identieke output wanneer er geen aangepaste opties nodig zijn.

Stap 4: Opslaan met CSV‑opties

Workbook.save_as_csv() accepteert een optionele CSVSaveOptions‑instantie als tweede argument. Maak een CSVSaveOptions aan vanuit aspose.cells_foss.csv_handler en geef deze direct door om het exportgedrag te regelen, bijvoorbeeld door een niet‑standaard scheidingsteken of codering te kiezen.

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)

Wanneer er geen CSVSaveOptions wordt doorgegeven, gebruikt save_as_csv() de ingebouwde standaardinstellingen van de bibliotheek (komma‑scheidingsteken, UTF-8‑codering). Geef het opties‑object door wanneer je die standaardinstellingen programmatisch moet overschrijven.

Stap 5: Exporteer een specifiek werkblad

Wanneer een werkmap meerdere bladen bevat, wordt het actieve blad geëxporteerd. Gebruik Workbook.set_active_worksheet() om te kiezen welk blad geëxporteerd moet worden vóór het opslaan.

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")

Om elk blad naar zijn eigen CSV‑bestand te exporteren, itereren 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")

Volledig voorbeeld

Het volgende zelfstandige voorbeeld maakt een werkmap, vult deze met voorbeeldgegevens en slaat deze op zowel als een standaard‑CSV als een puntkomma‑gescheiden 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.")

Veelvoorkomende problemen

Leeg uitvoerbestand

Als de uitvoer‑CSV leeg is of alleen lege regels bevat, controleer dan of celwaarden zijn toegewezen voordat save_as_csv() wordt aangeroepen. De methode exporteert het actieve werkblad — bevestig dat het juiste blad actief is met behulp van workbook.get_active_worksheet().

Coderingproblemen (Vervormde tekens)

Wanneer u een CSV in Excel opent en corrupte tekens ziet, controleer dan de codering die tijdens het exporteren is gebruikt. Aspose.Cells FOSS gebruikt standaard UTF-8; Excel op Windows verwacht mogelijk een byte-order mark (BOM) om de codering correct te herkennen. Configureer de codering via CSVSaveOptions en geef deze door aan save_as_csv().

Multi-Sheet-werkboeken exporteren slechts één blad

CSV is een enkel‑tabelformaat; slechts één werkblad kan per bestand worden opgeslagen. Exporteer elk blad afzonderlijk met set_active_worksheet(index) zoals weergegeven in Stap 5.

Cellen die het scheidingsteken bevatten

Als een celwaarde het scheidingsteken bevat (bijv. een komma in komma‑gescheiden uitvoer), plaatst Aspose.Cells FOSS automatisch aanhalingstekens rond de waarde tijdens export. Gebruik CSVSaveOptions om het aanhalingsteken‑gedrag aan te passen indien nodig.

FAQ

Q: Geeft workbook.save("output.csv") hetzelfde resultaat als save_as_csv()?

Ja. Workbook.save() inspecteert de bestandsextensie en delegeert naar save_as_csv() wanneer de extensie .csv is. Roep save_as_csv() direct aan en geef een CSVSaveOptions instantie door wanneer je de export moet aanpassen buiten de ingebouwde standaardinstellingen.

Q: Kan ik exporteren naar een CSV‑string in plaats van een bestand?

Ja. Gebruik CSVHandler.save_csv_to_string(workbook, options) van aspose.cells_foss.csv_handler. Dit retourneert de CSV‑inhoud als een Python‑string, die je naar een stream kunt schrijven, uploaden of verder kunt verwerken zonder het bestandssysteem aan te raken.

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)

V: Hoe laad ik een CSV terug in een werkmap na het opslaan?

Gebruik Workbook.load_csv("file.csv") op een bestaande Workbook‑instantie, of roep de handige functie load_csv_workbook("file.csv") aan vanuit aspose.cells_foss.csv_handler om in één stap een klaar‑voor‑gebruik werkboek te krijgen.

V: Welke Python‑versies worden ondersteund?

Aspose.Cells FOSS vereist Python 3.7 of hoger. Er zijn geen extra native extensies nodig voor CSV-export; de bibliotheek is pure Python.

V: Kan ik alleen een deel van een werkblad (een celbereik) opslaan als CSV?

Aspose.Cells FOSS exporteert het volledige gebruikte bereik van het actieve werkblad. Om de uitvoer te beperken tot een specifiek bereik, kopieer je de gewenste cellen naar een tijdelijk werkboek en exporteer je dat werkboek.

Zie ook

 Nederlands