Jak uložit tabulky jako CSV v Pythonu
Problém
Uložte sešit Excel (.xlsx) jako soubor CSV pomocí Aspose.Cells FOSS v Pythonu. Načtěte sešit pomocí Workbook(), poté zavolejte save_as_csv() pro zápis aktivního listu do souboru s hodnotami oddělenými čárkami. Volitelně předejte objekt CSVSaveOptions pro řízení oddělovače, kódování a chování uvozovek.
Předpoklady
Chcete-li ukládat tabulky jako CSV pomocí Aspose.Cells FOSS v Pythonu, zajistěte, aby vaše prostředí splňovalo následující požadavky.
- Python 3.7 nebo novější nainstalován
- Nainstalujte Aspose.Cells FOSS pomocí
pip install aspose-cells-foss>=26.3.1 - Importujte knihovnu pomocí
from aspose.cells_foss import Workbook - Základní znalost práce se soubory v Pythonu
Kroky uložení
Krok 1: Instalace knihovny
Nainstalujte Aspose.Cells FOSS z PyPI. Pro použití FOSS není vyžadován žádný licenční soubor.
pip install aspose-cells-fossKrok 2: Načtení sešitu
Vytvořte instanci Workbook s cestou k existujícímu souboru .xlsx. Konstruktor přijímá volitelný parametr password pro chráněné sešity.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Chcete-li pracovat s zcela novým sešitem, vynechte cestu k souboru:
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.95Krok 3: Uložení aktivního listu jako CSV
Zavolejte Workbook.save_as_csv() s požadovanou výstupní cestou. Metoda standardně zapisuje první (aktivní) list.
workbook.save_as_csv("output.csv")Alternativně použijte obecnou metodu Workbook.save() — Aspose.Cells FOSS odvodí formát CSV z přípony .csv:
workbook.save("output.csv")Obě volání produkují identický výstup, pokud nejsou potřeba vlastní možnosti.
Krok 4: Uložení s možnostmi CSV
Workbook.save_as_csv() přijímá volitelnou instanci CSVSaveOptions jako druhý argument. Vytvořte instanci CSVSaveOptions z aspose.cells_foss.csv_handler a předejte ji přímo pro řízení chování exportu, například pro výběr nestandardního oddělovače nebo kódování.
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)Pokud není předán CSVSaveOptions, používá save_as_csv() výchozí nastavení knihovny (oddělovač čárka, kódování UTF-8). Předejte objekt s možnostmi vždy, když potřebujete tato výchozí nastavení přepsat programově.
Krok 5: Export konkrétního listu
Pokud sešit obsahuje více listů, exportuje se aktivní list. Použijte Workbook.set_active_worksheet() pro výběr listu k exportu před uložením.
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")Chcete-li exportovat každý list do vlastního souboru CSV, iterujte přes 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")Kompletní příklad
Následující samostatný příklad vytvoří sešit, naplní ho ukázkovými daty a uloží ho jako standardní CSV i jako CSV oddělené středníkem.
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.")Běžné problémy
Prázdný výstupní soubor
Pokud je výstupní CSV prázdný nebo obsahuje pouze prázdné řádky, ověřte, že hodnoty buněk byly přiřazeny před voláním save_as_csv(). Metoda exportuje aktivní list — potvrďte, že správný list je aktivní pomocí workbook.get_active_worksheet().
Problémy s kódováním (nečitelné znaky)
Při otevírání CSV v Excelu a zobrazení poškozených znaků ověřte kódování použité při exportu. Aspose.Cells FOSS ve výchozím nastavení používá UTF-8; Excel ve Windows může očekávat značku pořadí bajtů (BOM) pro správné rozpoznání kódování. Nakonfigurujte kódování přes CSVSaveOptions a předejte ho do save_as_csv().
Sešity s více listy exportují pouze jeden list
CSV je formát jedné tabulky; na soubor lze uložit pouze jeden list. Exportujte každý list jednotlivě pomocí set_active_worksheet(index) jak je uvedeno v Kroku 5.
Buňky obsahující oddělovač
Pokud hodnota buňky obsahuje znak oddělovače (např. čárka ve výstupu odděleném čárkou), Aspose.Cells FOSS automaticky uvede hodnotu do uvozovek při exportu. Pro přizpůsobení chování uvozovek použijte CSVSaveOptions.
Časté dotazy
O: Produkuje workbook.save("output.csv") stejný výsledek jako save_as_csv()?
Ano. Workbook.save() zkontroluje příponu souboru a deleguje na save_as_csv(), pokud je přípona .csv. Volejte save_as_csv() přímo a předejte instanci CSVSaveOptions, pokud potřebujete přizpůsobit export nad rámec vestavěných výchozích nastavení.
O: Mohu exportovat do řetězce CSV místo souboru?
Ano. Použijte CSVHandler.save_csv_to_string(workbook, options) z aspose.cells_foss.csv_handler. Tato metoda vrátí obsah CSV jako řetězec Pythonu, který můžete zapsat do streamu, nahrát nebo dále zpracovat bez dotyku souborového systému.
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)O: Jak načtu CSV zpět do sešitu po uložení?
Použijte Workbook.load_csv("file.csv") na existující instanci Workbook, nebo zavolejte pomocnou funkci load_csv_workbook("file.csv") z aspose.cells_foss.csv_handler pro získání připraveného sešitu v jednom kroku.
O: Které verze Pythonu jsou podporovány?
Aspose.Cells FOSS vyžaduje Python 3.7 nebo novější. Pro export CSV nejsou potřeba žádná další nativní rozšíření; knihovna je čistý Python.
O: Mohu uložit pouze část listu (rozsah buněk) jako CSV?
Aspose.Cells FOSS exportuje celý použitý rozsah aktivního listu. Chcete-li omezit výstup na konkrétní rozsah, zkopírujte požadované buňky do dočasného sešitu a exportujte tento sešit.
Viz také
- Jak ukládat soubory pomocí Aspose.Cells FOSS — obecný přehled ukládání zahrnující XLSX a Markdown
- Jak převést CSV na JSON v Pythonu — načtení CSV a export do formátu JSON
- Jak exportovat Excel do Markdownu v Pythonu — export tabulky Markdown pomocí
save_as_markdown() - Aspose.Cells FOSS pro Python: Příručka pro vývojáře — komplexní dokumentace funkcí
- Referenční příručka API —
Workbook,CSVHandler,CSVSaveOptions