Kako sačuvati proračunske tabele kao CSV u Pythonu

Kako sačuvati proračunske tabele kao CSV u Pythonu

Problem

Sačuvajte Excel radnu svesku (.xlsx) kao CSV fajl koristeći Aspose.Cells FOSS u Pythonu. Učitajte radnu svesku pomoću Workbook(), zatim pozovite save_as_csv() da zapišete aktivni radni list u fajl sa vrednostima odvojenim zarezom. Opcionalno prosledite CSVSaveOptions objekat da kontrolišete delimiter, encoding i quote behaviour.

Preduslovi

Da biste sačuvali proračunske tablice kao CSV koristeći Aspose.Cells FOSS u Pythonu, uverite se da vaše okruženje ispunjava sledeće zahteve.

  • Python 3.7 ili noviji instaliran
  • Instalirajte Aspose.Cells FOSS putem pip install aspose-cells-foss>=26.3.1
  • Uvezite biblioteku koristeći from aspose.cells_foss import Workbook
  • Osnovno poznavanje rada sa fajlovima u Pythonu

Koraci čuvanja

Korak 1: Instalirajte biblioteku

Instalirajte Aspose.Cells FOSS sa PyPI. Za FOSS upotrebu nije potreban fajl licence.

pip install aspose-cells-foss

Korak 2: Učitaj radnu svesku

Instancirajte Workbook sa putanjom do postojećeg .xlsx fajla. Konstruktor prihvata opcionalni password parametar za zaštićene radne sveske.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Da biste radili sa potpuno novim radnim listom, izostavite putanju do fajla:

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

Korak 3: Sačuvajte aktivni list kao CSV

Pozovite Workbook.save_as_csv() sa željenom putanjom izlaza. Metoda podrazumevano zapisuje prvi (aktivni) radni list.

workbook.save_as_csv("output.csv")

Alternativno, koristite generičku Workbook.save() metodu — Aspose.Cells FOSS izdvaja CSV format iz ekstenzije .csv:

workbook.save("output.csv")

Oba poziva daju identičan izlaz kada nisu potrebne prilagođene opcije.

Korak 4: Sačuvaj sa CSV opcijama

Workbook.save_as_csv() prihvata opcioni CSVSaveOptions objekat kao svoj drugi argument. Instancirajte CSVSaveOptions iz aspose.cells_foss.csv_handler i prosledite ga direktno da biste kontrolisali ponašanje izvoza, kao što je izbor ne‑podrazumevanog delimitera ili kodiranja.

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)

Kada se ne prosledi CSVSaveOptions, save_as_csv() koristi ugrađene podrazumevane vrednosti biblioteke (zarez kao razdelnik, UTF-8 kodiranje). Prosledite objekat opcija kad god treba da programatski prepišete te podrazumevane vrednosti.

Korak 5: Izvezi određeni radni list

Kada radna sveska sadrži više listova, izvezen je aktivni list. Koristite Workbook.set_active_worksheet() da izaberete koji list da izvezete pre nego što sačuvate.

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

Da biste izvezli svaki list u svoj CSV fajl, iterirajte preko 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")

Kompletan primer

Sledeći samostalni primer kreira radnu svesku, popunjava je uzorkom podataka i čuva je i kao standardni CSV i kao CSV razdvojen tačkom i zarezom.

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

Česti problemi

Prazna izlazna datoteka

Ako je izlazni CSV prazan ili sadrži samo prazne linije, proverite da li su vrednosti ćelija dodeljene pre pozivanja save_as_csv(). Metod izvozi aktivni radni list — potvrdite da je ispravan list aktivan koristeći workbook.get_active_worksheet().

Problemi kodiranja (izobličeni znakovi)

При отварању CSV‑фајла у Excel‑у и појави корумпираних карактера, проверите кодирање које је коришћено приликом извоза. Aspose.Cells FOSS подразумева UTF‑8; Excel на Windows‑у може очекивати ознаку редоследа бајтова (BOM) да би правилно препознао кодирање. Подесите кодирање преко CSVSaveOptions и проследите га у save_as_csv().

Radne sveske sa više listova izvoze samo jedan list

CSV je format jedne tabele; po fajlu se može sačuvati samo jedan radni list. Izvezite svaki list pojedinačno koristeći set_active_worksheet(index) kao što je prikazano u koraku 5.

Ćelije koje sadrže razdelnik

Ako vrednost ćelije sadrži znak razdelnika (npr. zarez u izlazu razdeljenom zarezom), Aspose.Cells FOSS automatski stavlja navodnike oko vrednosti prilikom izvoza. Koristite CSVSaveOptions da prilagodite ponašanje navodnika po potrebi.

FAQ

P: Da li workbook.save("output.csv") daje isti rezultat kao save_as_csv()?

Da. Workbook.save() proverava ekstenziju fajla i delegira na save_as_csv() kada je ekstenzija .csv. Pozovite save_as_csv() direktno i prosledite instancu CSVSaveOptions kada treba da prilagodite izvoz izvan ugrađenih podrazumevanih vrednosti.

P: Mogu li izvesti u CSV string umesto fajla?

Да. Користите CSVHandler.save_csv_to_string(workbook, options) из aspose.cells_foss.csv_handler. Ово враћа CSV садржај као Python стринг, који можете записати у ток, отпремити или даље обрадити без додирања система датотека.

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)

Q: Kako da učitam CSV nazad u radnu svesku nakon čuvanja?

Koristite Workbook.load_csv("file.csv") na postojećoj Workbook instanci, ili pozovite praktičnu funkciju load_csv_workbook("file.csv") iz aspose.cells_foss.csv_handler da biste dobili spremnu radnu svesku u jednom koraku.

P: Koje verzije Pythona su podržane?

Aspose.Cells FOSS zahteva Python 3.7 ili noviji. Nisu potrebna dodatna nativna proširenja za izvoz u CSV; biblioteka je čisti Python.

P: Mogu li da sačuvam samo deo radnog lista (opseg ćelija) kao CSV?

Aspose.Cells FOSS izveze celokupni korišćeni opseg aktivnog radnog lista. Da biste ograničili izlaz na određeni opseg, kopirajte željene ćelije u privremenu radnu knjigu i izvezite tu radnu knjigu.

Види такође

 Српски