Jak uložit tabulky jako CSV v Pythonu

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

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

Krok 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é

 Čeština