Hur man sparar kalkylblad som CSV i Python
Problem
Spara en Excel-arbetsbok (.xlsx) som en CSV-fil med Aspose.Cells FOSS i Python. Läs in arbetsboken med Workbook(), anropa sedan save_as_csv() för att skriva det aktiva kalkylbladet till en kommaseparerad fil. Skicka valfritt ett CSVSaveOptions-objekt för att styra avgränsare, kodning och citatteckenbeteende.
Förutsättningar
För att spara kalkylblad som CSV med Aspose.Cells FOSS i Python, se till att din miljö uppfyller följande krav.
- Python 3.7 eller senare installerat
- Installera Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importera biblioteket med
from aspose.cells_foss import Workbook - Grundläggande kunskaper om filhantering i Python
Sparsteg
Steg 1: Installera biblioteket
Installera Aspose.Cells FOSS från PyPI. Ingen licensfil krävs för FOSS-användning.
pip install aspose-cells-fossSteg 2: Läs in arbetsboken
Instansiera Workbook med sökvägen till en befintlig .xlsx-fil. Konstruktorn accepterar en valfri password-parameter för skyddade arbetsböcker.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")För att arbeta med en helt ny arbetsbok, utelämna filsökvägen:
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.95Steg 3: Spara det aktiva bladet som CSV
Anropa Workbook.save_as_csv() med önskad utdatasökväg. Metoden skriver det första (aktiva) kalkylbladet som standard.
workbook.save_as_csv("output.csv")Alternativt kan du använda den generiska metoden Workbook.save() — Aspose.Cells FOSS härleder CSV-formatet från .csv-tillägget:
workbook.save("output.csv")Båda anropen ger identisk utdata när inga anpassade alternativ behövs.
Steg 4: Spara med CSV-alternativ
Workbook.save_as_csv() accepterar en valfri CSVSaveOptions-instans som sitt andra argument. Instansiera CSVSaveOptions från aspose.cells_foss.csv_handler och skicka det direkt för att styra exportbeteendet, till exempel att välja en icke-standardavgränsare 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 inget CSVSaveOptions skickas använder save_as_csv() bibliotekets inbyggda standardvärden (kommaavgränsare, UTF-8-kodning). Skicka alternativobjektet när du behöver åsidosätta dessa standardvärden programmatiskt.
Steg 5: Exportera ett specifikt kalkylblad
När en arbetsbok innehåller flera blad exporteras det aktiva bladet. Använd Workbook.set_active_worksheet() för att välja vilket blad som ska exporteras innan du sparar.
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")För att exportera varje blad till sin egen CSV-fil, iterera över 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 exempel
Följande fristående exempel skapar en arbetsbok, fyller den med exempeldata och sparar den som både standard-CSV och semikolonseparerad 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.")Vanliga problem
Tom utdatafil
Om utdata-CSV:n är tom eller bara innehåller tomma rader, kontrollera att cellvärden tilldelades innan save_as_csv() anropades. Metoden exporterar det aktiva kalkylbladet — bekräfta att rätt blad är aktivt med workbook.get_active_worksheet().
Kodningsproblem (oläsliga tecken)
När du öppnar en CSV i Excel och ser skadade tecken, kontrollera kodningen som används vid export. Aspose.Cells FOSS använder UTF-8 som standard; Excel på Windows kan förvänta sig en byte-ordningsmarkering (BOM) för att korrekt känna igen kodningen. Konfigurera kodningen via CSVSaveOptions och skicka den till save_as_csv().
Arbetsböcker med flera blad exporterar bara ett blad
CSV är ett enkeltabellformat; bara ett kalkylblad kan sparas per fil. Exportera varje blad individuellt med set_active_worksheet(index) som visas i Steg 5.
Celler som innehåller avgränsaren
Om ett cellvärde innehåller avgränsartecknet (t.ex. ett komma i kommaseparerad utdata) citerar Aspose.Cells FOSS automatiskt värdet vid export. Använd CSVSaveOptions för att anpassa citatteckenbeteendet om det behövs.
Vanliga frågor
F: Producerar workbook.save("output.csv") samma resultat som save_as_csv()?
Ja. Workbook.save() inspekterar filtillägget och delegerar till save_as_csv() när tillägget är .csv. Anropa save_as_csv() direkt och skicka en CSVSaveOptions-instans när du behöver anpassa exporten utöver de inbyggda standardvärdena.
F: Kan jag exportera till en CSV-sträng istället för en fil?
Ja. Använd CSVHandler.save_csv_to_string(workbook, options) från aspose.cells_foss.csv_handler. Detta returnerar CSV-innehållet som en Python-sträng, som du kan skriva till en ström, ladda upp eller bearbeta vidare utan att röra 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)F: Hur laddar jag in en CSV tillbaka i en arbetsbok efter att ha sparat?
Använd Workbook.load_csv("file.csv") på en befintlig Workbook-instans, eller anropa bekvämlighetsfunktionen load_csv_workbook("file.csv") från aspose.cells_foss.csv_handler för att få en användningsfärdig arbetsbok i ett steg.
F: Vilka Python-versioner stöds?
Aspose.Cells FOSS kräver Python 3.7 eller senare. Inga ytterligare nativa tillägg behövs för CSV-export; biblioteket är ren Python.
F: Kan jag spara bara en del av ett kalkylblad (ett cellintervall) som CSV?
Aspose.Cells FOSS exporterar hela det använda intervallet på det aktiva kalkylbladet. För att begränsa utdata till ett specifikt intervall, kopiera önskade celler till en tillfällig arbetsbok och exportera den arbetsboken.
Se även
- Hur man sparar filer med Aspose.Cells FOSS — allmän sparöversikt som täcker XLSX och Markdown
- Hur man konverterar CSV till JSON i Python — ladda CSV och exportera till JSON-format
- Hur man exporterar Excel till Markdown i Python — Markdown-tabellexport med
save_as_markdown() - Aspose.Cells FOSS för Python: Utvecklarguide — omfattande funktionsdokumentation
- API-referens —
Workbook,CSVHandler,CSVSaveOptions