Rad s ćelijama

Pregled

Svaki radni list izlaže cells kolekciju koja mapira Excel‑stil adrese (kao što su "A1", "B3") na Cell objekte. Do ćeliju pristupate izravno pomoću indeksa:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Access a cell by address
cell = ws.cells["A1"]

Vrijednosti, formule i informacije o stilu sve se nalaze na Cell objektu. Možete ili izmijeniti ćeliju na mjestu pisanjem u njezinu .value ili .formula svojstvo, ili zamijeniti ćeliju u potpunosti dodjeljivanjem novog Cell primjera na adresu.


Čitanje i pisanje vrijednosti

Dodijelite cell.value za pisanje stringa, cijelog broja ili decimalnog broja. Pročitajte isto svojstvo nazad kako biste dohvatili što je pohranjeno.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

##Write a string
ws.cells["A1"].value = "Hello, world"

##Write an integer
ws.cells["A2"].value = 42

##Write a float
ws.cells["A3"].value = 3.14159

##Read values back
print(ws.cells["A1"].value)   # Hello, world
print(ws.cells["A2"].value)   # 42
print(ws.cells["A3"].value)   # 3.14159

workbook.save("values_demo.xlsx")

The .value svojstvo prihvaća bilo koji Python skalar. Biblioteka pohranjuje tip Python takav kakav jest; ne događa se implicitna konverzija prilikom pisanja.


Korištenje konstruktora Cell

The Cell konstruktor vam omogućuje stvaranje ćelije s vrijednošću (i po želji a formulu) u jednom izrazu. Dodijelite rezultat Cell objekt na adresni indeks da ga smjestite u listu.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Integer cell
ws.cells["A1"] = Cell(42)

##String cell
ws.cells["A2"] = Cell("Revenue")

##Float cell
ws.cells["A3"] = Cell(3.14)

##Explicitly empty cell (no value, no formula)
ws.cells["A4"] = Cell(None)

workbook.save("cell_constructor_demo.xlsx")

Prvi pozicijski argument za Cell je vrijednost. Kada proslijedite None taj ćelija se pohranjuje bez vrijednosti, što je korisno kada namjeravate postaviti formulu odvojeno ili želite izričito praznu ćeliju umjesto nepostojeće.


Ćelije s formulama

Ćelija s formulom pohranjuje izraz kompatibilan s Excelom uz (ili umjesto) statičke vrijednosti. Postoje dva načina za njeno stvaranje.

Putem konstruktora Cell — proslijedite None kao vrijednost i string formule kao drugi argument:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(20)
ws.cells["A3"] = Cell(30)

##Formula via constructor: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")

workbook.save("formula_constructor.xlsx")

Putem .formula svojstva — postavite svojstvo na postojeću ćeliju:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

for i, v in enumerate([5, 10, 15, 20, 25], start=1):
    ws.cells[f"A{i}"].value = v

ws.cells["B1"].formula = "=AVERAGE(A1:A5)"

workbook.save("formula_property.xlsx")

Brzi pregled uobičajenih formula

SvrhaNiz formule
Zbroji raspon=SUM(A1:A10)
Prosjek raspona=AVERAGE(A1:A10)
Maksimalna vrijednost=MAX(A1:A10)
Minimalna vrijednost=MIN(A1:A10)
Broj ne-praznih=COUNT(A1:A10)
Uvjetna vrijednost=IF(A1>0,"Positive","Non-positive")
Potraži vrijednost=VLOOKUP(D1,A1:B10,2,FALSE)
Konkateniraj stringove=CONCATENATE(A1," ",B1)

Formularni stringovi moraju početi s =. Biblioteka ih pohranjuje doslovno; Excel (ili kompatibilni čitač) evaluira izraz kada se datoteka otvori.


Iteriranje podataka

Koristite standardnu Python petlju za popunjavanje stupca ili retka iz popisa:

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

monthly_sales = [12_500, 14_200, 9_800, 17_600, 21_100, 18_400]

##Write a header
ws.cells["A1"].value = "Monthly Sales"

##Write data starting at row 2 (index 1 → address A2)
for i, val in enumerate(monthly_sales, start=2):
    ws.cells[f"A{i}"].value = val

##Write a SUM formula below the data
last_row = 1 + len(monthly_sales)  # row index of last data cell
ws.cells[f"A{last_row + 1}"].formula = f"=SUM(A2:A{last_row})"

workbook.save("monthly_sales.xlsx")

The enumerate(iterable, start=N) uzorak se čisto mapira na Excel brojeve redaka budući da su Excel redci indeksirani od 1. Počevši od start=2 rezervira red 1 za zaglavlje.


Mješoviti tipovi vrijednosti

Sljedeći potpuni primjer izgrađuje mali skup podataka s tekstualnim redkom zaglavlja, tri redka podataka koji sadrže cijele brojeve, decimalne brojeve i stringove, te redak formule koji sažima numeričke stupce.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##--- Header row ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Units Sold"
ws.cells["C1"].value = "Unit Price"
ws.cells["D1"].value = "Revenue"

##--- Data rows ---
##Row 2
ws.cells["A2"] = Cell("Widget A")
ws.cells["B2"] = Cell(120)
ws.cells["C2"] = Cell(9.99)
ws.cells["D2"] = Cell(None, "=B2*C2")

##Row 3
ws.cells["A3"] = Cell("Widget B")
ws.cells["B3"] = Cell(85)
ws.cells["C3"] = Cell(14.50)
ws.cells["D3"] = Cell(None, "=B3*C3")

##Row 4
ws.cells["A4"] = Cell("Widget C")
ws.cells["B4"] = Cell(200)
ws.cells["C4"] = Cell(4.75)
ws.cells["D4"] = Cell(None, "=B4*C4")

##--- Summary row ---
ws.cells["A5"].value = "TOTAL"
ws.cells["B5"] = Cell(None, "=SUM(B2:B4)")
ws.cells["D5"] = Cell(None, "=SUM(D2:D4)")

workbook.save("mixed_types_dataset.xlsx")
print("Saved mixed_types_dataset.xlsx")

Nakon otvaranja datoteke u Excelu (ili bilo kojoj kompatibilnoj aplikaciji za proračunske tablice), the D stupac i the B5 / D5 ćelije će prikazati izračunate rezultate formulskih izraza.


Savjeti

None vrijednost vs prazni niz

Cell(None) i ws.cells["A1"].value = None stvorite ćeliju bez pohranjenog vrijednost — neodvojiva od ćelije koja nikada nije zapisana u većini proračunskih tablica čitača. Cell("") ili ws.cells["A1"].value = "" stvorite ćeliju koja izričito sadrži prazan niz, koji neki čitači i formule tretiraju drugačije (na primjer, =COUNT zanemaruje ćelije s praznim nizom na isti način na koji zanemaruje prazne ćelije, ali =COUNTA ih broji).

Formula string vs statička vrijednost

Čitanje .value iz ćelije s formulom vraća None (ili posljednju pohranjenu vrijednost ako jedna je postavljena prije nego što je formula dodijeljena). Čitanje .formula vraća izražajni niz. Ako trebate razlikovati između ćelije s formulom i a plain-value cell u runtimeu, provjeri je li ws.cells["A1"].formula nije prazna:

cell = ws.cells["A1"]
if cell.formula:
    print(f"Formula: {cell.formula}")
else:
    print(f"Value: {cell.value}")

Vidi također

 Hrvatski