Kako spremiti proračunske tablice kao CSV u Pythonu

Kako spremiti proračunske tablice kao CSV u Pythonu

Problem

Spremite Excel radnu knjižicu (.xlsx) kao CSV datoteku koristeći Aspose.Cells FOSS u Pythonu. Učitajte radnu knjižicu s Workbook(), zatim pozovite save_as_csv() za pisanje aktivnog radnog lista u datoteku vrijednosti odvojenih zarezima. Po izboru proslijedite objekt CSVSaveOptions za kontrolu razdjelnika, kodiranja i ponašanja navodnika.

Preduvjeti

Za spremanje proračunskih tablica kao CSV koristeći Aspose.Cells FOSS u Pythonu, osigurajte da vaše okruženje ispunjava sljedeće zahtjeve.

  • 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 s datotekama u Pythonu

Koraci za spremanje

Korak 1: Instaliranje biblioteke

Instalirajte Aspose.Cells FOSS s PyPI. Za korištenje FOSS nije potrebna datoteka licence.

pip install aspose-cells-foss

Korak 2: Učitavanje radne knjižice

Instancirajte Workbook s putanjom do postojeće .xlsx datoteke. Konstruktor prihvaća neobavezni parametar password za zaštićene radne knjižice.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Za rad s potpuno novom radnom knjižicom, izostavite putanju datoteke:

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: Spremanje aktivnog lista kao CSV

Pozovite Workbook.save_as_csv() s željenom izlaznom putanjom. Metoda prema zadanim postavkama zapisuje prvi (aktivni) radni list.

workbook.save_as_csv("output.csv")

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

workbook.save("output.csv")

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

Korak 4: Spremanje s CSV opcijama

Workbook.save_as_csv() prihvaća neobaveznu instancu CSVSaveOptions kao drugi argument. Instancirajte CSVSaveOptions iz aspose.cells_foss.csv_handler i proslijedite ga izravno za kontrolu ponašanja izvoza, kao što je odabir nestandardnog razdjelnika 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 proslijedi CSVSaveOptions, save_as_csv() koristi ugrađene zadane vrijednosti biblioteke (razdjelnik zarez, kodiranje UTF-8). Proslijedite objekt opcija uvijek kada trebate programatski nadjačati te zadane vrijednosti.

Korak 5: Izvoz određenog radnog lista

Kada radna knjižica sadrži više listova, izvozi se aktivni list. Koristite Workbook.set_active_worksheet() za odabir lista za izvoz prije spremanja.

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

Za izvoz svakog lista u vlastitu CSV datoteku, iterirajte kroz 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")

Potpuni primjer

Sljedeći samostalni primjer kreira radnu knjižicu, popunjava je uzorkom podataka i sprema je i kao standardni CSV i kao CSV odvojen točka-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 retke, provjerite jesu li vrijednosti ćelija dodijeljene prije pozivanja save_as_csv(). Metoda izvozi aktivni radni list — potvrdite da je ispravan list aktivan koristeći workbook.get_active_worksheet().

Problemi s kodiranjem (iskrivljeni znakovi)

Kada otvarate CSV u Excelu i vidite oštećene znakove, provjerite kodiranje korišteno tijekom izvoza. Aspose.Cells FOSS zadano koristi UTF-8; Excel na Windowsu može očekivati oznaku redoslijeda bajtova (BOM) za ispravno prepoznavanje kodiranja. Konfigurirajte kodiranje putem CSVSaveOptions i proslijedite ga u save_as_csv().

Radne knjižice s više listova izvoze samo jedan list

CSV je format jedne tablice; po datoteci se može spremiti 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 razdjelnik

Ako vrijednost ćelije sadrži znak razdjelnika (npr. zarez u izlazu odvojenom zarezima), Aspose.Cells FOSS automatski stavlja navodne znakove oko vrijednosti tijekom izvoza. Koristite CSVSaveOptions za prilagodbu ponašanja navodnih znakova prema potrebi.

Često postavljana pitanja

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

Da. Workbook.save() provjerava ekstenziju datoteke i delegira na save_as_csv() kada je ekstenzija .csv. Pozovite save_as_csv() izravno i proslijedite instancu CSVSaveOptions kada trebate prilagoditi izvoz izvan ugrađenih zadanih postavki.

P: Mogu li izvesti u CSV niz umjesto datoteke?

Da. Koristite CSVHandler.save_csv_to_string(workbook, options) iz aspose.cells_foss.csv_handler. Ovo vraća CSV sadržaj kao Python niz, koji možete zapisati u tok, prenijeti ili dalje obraditi bez doticaja datotečnog sustava.

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)

P: Kako učitati CSV natrag u radnu knjižicu nakon spremanja?

Koristite Workbook.load_csv("file.csv") na postojećoj instanci Workbook, ili pozovite funkciju pogodnosti load_csv_workbook("file.csv") iz aspose.cells_foss.csv_handler za dobivanje radne knjižice spremne za korištenje u jednom koraku.

P: Koje verzije Pythona su podržane?

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

P: Mogu li spremiti samo dio radnog lista (raspon ćelija) kao CSV?

Aspose.Cells FOSS izvozi cijeli korišteni raspon aktivnog radnog lista. Za ograničavanje izlaza na određeni raspon, kopirajte željene ćelije u privremenu radnu knjižicu i izvezite tu radnu knjižicu.

Vidi također

 Hrvatski