Ako uložiť tabuľky ako CSV v Pythone

Ako uložiť tabuľky ako CSV v Pythone

Problém

Uložte zošit Excelu (.xlsx) ako súbor CSV pomocou Aspose.Cells FOSS v Pythone. Načítajte zošit pomocou Workbook(), potom zavolajte save_as_csv() na zapísanie aktívneho hárku do súboru s hodnotami oddelenými čiarkami. Voliteľne odovzdajte objekt CSVSaveOptions na ovládanie oddeľovača, kódovania a správania úvodzoviek.

Predpoklady

Ak chcete ukladať tabuľky ako CSV pomocou Aspose.Cells FOSS v Pythone, uistite sa, že vaše prostredie spĺňa nasledujúce požiadavky.

  • Python 3.7 alebo novší nainštalovaný
  • Nainštalujte Aspose.Cells FOSS cez pip install aspose-cells-foss>=26.3.1
  • Importujte knižnicu pomocou from aspose.cells_foss import Workbook
  • Základná znalosť práce so súbormi v Pythone

Kroky uloženia

Krok 1: Inštalácia knižnice

Nainštalujte Aspose.Cells FOSS z PyPI. Pre použitie FOSS nie je potrebný žiadny licenčný súbor.

pip install aspose-cells-foss

Krok 2: Načítanie zošita

Vytvorte inštanciu Workbook s cestou k existujúcemu súboru .xlsx. Konštruktor prijíma voliteľný parameter password pre chránené zošity.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Ak chcete pracovať s úplne novým zošitom, vynechajte cestu k súboru:

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ženie aktívneho hárku ako CSV

Zavolajte Workbook.save_as_csv() s požadovanou výstupnou cestou. Metóda štandardne zapisuje prvý (aktívny) hárok.

workbook.save_as_csv("output.csv")

Alternatívne použite všeobecnú metódu Workbook.save() — Aspose.Cells FOSS odvodí formát CSV z prípony .csv:

workbook.save("output.csv")

Oba volania produkujú identický výstup, keď nie sú potrebné vlastné možnosti.

Krok 4: Uloženie s možnosťami CSV

Workbook.save_as_csv() prijíma voliteľnú inštanciu CSVSaveOptions ako druhý argument. Vytvorte inštanciu CSVSaveOptions z aspose.cells_foss.csv_handler a odovzdajte ju priamo na ovládanie správania exportu, ako napríklad výber nestandardného oddeľovača alebo kódovania.

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)

Keď nie je odovzdaný CSVSaveOptions, save_as_csv() používa vstavané predvolené hodnoty knižnice (oddeľovač čiarka, kódovanie UTF-8). Odovzdajte objekt s možnosťami vždy, keď potrebujete tieto predvolené hodnoty programovo prepísať.

Krok 5: Export konkrétneho hárku

Keď zošit obsahuje viac hárkov, exportuje sa aktívny hárok. Použite Workbook.set_active_worksheet() na výber hárku na export pred 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")

Ak chcete exportovať každý hárok do vlastného súboru CSV, iterujte cez 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ý príklad

Nasledujúci samostatný príklad vytvorí zošit, naplní ho ukážkovými dátami a uloží ho ako štandardný CSV aj ako CSV oddelený bodkočiarkou.

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

Bežné problémy

Prázdny výstupný súbor

Ak je výstupný CSV prázdny alebo obsahuje iba prázdne riadky, overte, že hodnoty buniek boli priradené pred volaním save_as_csv(). Metóda exportuje aktívny hárok — potvrďte, že správny hárok je aktívny pomocou workbook.get_active_worksheet().

Problémy s kódovaním (nečitateľné znaky)

Pri otváraní CSV v Exceli a zobrazení poškodených znakov overte kódovanie použité pri exporte. Aspose.Cells FOSS štandardne používa UTF-8; Excel vo Windows môže očakávať značku poradia bajtov (BOM) na správne rozpoznanie kódovania. Nakonfigurujte kódovanie cez CSVSaveOptions a odovzdajte ho do save_as_csv().

Zošity s viacerými hárkami exportujú iba jeden hárok

CSV je formát jednej tabuľky; na súbor možno uložiť iba jeden hárok. Exportujte každý hárok jednotlivo pomocou set_active_worksheet(index) ako je ukázané v Kroku 5.

Bunky obsahujúce oddeľovač

Ak hodnota bunky obsahuje znak oddeľovača (napr. čiarka vo výstupe oddelenom čiarkou), Aspose.Cells FOSS automaticky uvedie hodnotu do úvodzoviek pri exporte. Na prispôsobenie správania úvodzoviek použite CSVSaveOptions.

Často kladené otázky

O: Produkuje workbook.save("output.csv") rovnaký výsledok ako save_as_csv()?

Áno. Workbook.save() skontroluje príponu súboru a deleguje na save_as_csv(), keď je prípona .csv. Volajte save_as_csv() priamo a odovzdajte inštanciu CSVSaveOptions, keď potrebujete prispôsobiť export nad rámec vstavaných predvolených nastavení.

O: Môžem exportovať do reťazca CSV namiesto súboru?

Áno. Použite CSVHandler.save_csv_to_string(workbook, options) z aspose.cells_foss.csv_handler. Tým sa vráti obsah CSV ako reťazec Pythonu, ktorý môžete zapísať do streamu, nahrať alebo ďalej spracovať bez dotyku súborové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: Ako načítam CSV späť do zošita po uložení?

Použite Workbook.load_csv("file.csv") na existujúcej inštancii Workbook, alebo zavolajte pomocnú funkciu load_csv_workbook("file.csv") z aspose.cells_foss.csv_handler na získanie pripraveného zošita v jednom kroku.

O: Ktoré verzie Pythonu sú podporované?

Aspose.Cells FOSS vyžaduje Python 3.7 alebo novší. Pre export CSV nie sú potrebné žiadne ďalšie natívne rozšírenia; knižnica je čistý Python.

O: Môžem uložiť iba časť hárku (rozsah buniek) ako CSV?

Aspose.Cells FOSS exportuje celý použitý rozsah aktívneho hárku. Na obmedzenie výstupu na konkrétny rozsah skopírujte požadované bunky do dočasného zošita a exportujte tento zošit.

Pozri tiež

 Slovenčina