Rad sa ćelijama

Pregled

Svaki radni list izlaže cells kolekciju koja mapira adrese u Excel‑stilu (kao što su "A1", "B3") do Cell objekte. Ćeliju pristupate direktno 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"]

Vrednosti, formule i informacije o stilu sve se nalaze na Cell objektu. Možete ili izmeniti ćeliju na mestu pisanjem u njenu .value ili .formula svojstvo, ili potpuno zameniti ćeliju dodeljivanjem novog Cell instancu na adresu.


Čitanje i pisanje vrednosti

Dodeli na cell.value za pisanje stringa, celog broja ili realnog broja. Pročitaj isto svojstvo nazad da bi se dobilo sve što je bilo sačuvano.

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

Ovo .value svojstvo prihvata bilo koji Python skalar. Biblioteka čuva. Python tip nepromenjen; ne vrši se implicitna konverzija prilikom upisa.


Korišćenje konstruktora Cell

The Cell constructor vam omogućava da kreirate ćeliju sa vrednošću (i po želji a formulu) u jednom izrazu. Dodeli rezultat Cell prigovori na adresa podindeks da je postavite u list.

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 pozicioni argument za Cell je vrednost. Kada prosledite None the ćelija se čuva bez vrednosti, što je korisno kada nameravate da postavite formulu odvojeno ili želite eksplicitno praznu ćeliju umesto odsutne.


Ćelije sa formulama

Ćelija sa formulom čuva izraz u formatu kompatibilnom sa Excel-om pored (ili umesto) statičke vrednosti. Postoje dva načina da je kreirate.

Preko Cell konstruktora — prolaz None kao vrednost 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")

Preko .formula svojstvo — 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

SvrhaString formule
Saberi opseg=SUM(A1:A10)
Prosek opsega=AVERAGE(A1:A10)
Maksimalna vrednost=MAX(A1:A10)
Minimalna vrednost=MIN(A1:A10)
Broj ne-praznih=COUNT(A1:A10)
Uslovna vrednost=IF(A1>0,"Positive","Non-positive")
Pretraži vrednost=VLOOKUP(D1,A1:B10,2,FALSE)
Konkatenacija stringova=CONCATENATE(A1," ",B1)

Formula stringovi moraju početi sa =. Biblioteka ih čuva doslovno; Excel (ili kompatibilni čitač) evaluira izraz kada se fajl otvori.


Iteriranje podataka

Koristite standardnu Python petlju da popunite kolonu ili red iz liste:

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) šablon se čisto mapira na brojeve redova u Excelu jer su redovi u Excelu 1‑bazirani. Počevši od start=2 rezerviše red 1 za a zaglavlje.


Mešoviti tipovi vrednosti

Sledeći kompletan primer izgrađuje mali skup podataka sa tekstualnim redom zaglavlja, tri reda podataka koji sadrže cele brojeve, realne brojeve i stringove, i red formule koji sumira numeričke kolone.

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 fajla u Excelu (ili bilo kojoj kompatibilnoj aplikaciji za proračunske tablice), the D kolona i B5 / D5 ćelije će prikazati izračunate rezultate formulskih izraza.


Saveti

None vrednost vs prazan string

Cell(None) i ws.cells["A1"].value = None kreirajte ćeliju bez sačuvane vrednost — neodvojiva od ćelije koja nikada nije upisana u većini proračunskih tablica čitača. Cell("") ili ws.cells["A1"].value = "" kreirajte ćeliju koja eksplicitno sadrži prazan string, što neki čitači i formule tretiraju drugačije (na primer, =COUNT ignoriše ćelije sa praznim stringom na isti način kao što ignoriše prazne ćelije, ali =COUNTA ih broji).

Formula string vs statička vrednost

Čitanje .value iz formule ćelije vraća None (ili poslednja keširana vrednost ako je postavljena pre nego što je formula dodeljena). Čitanje .formula vraća string izraza. Ako treba da razlikujete između ćelije formule i ćelije obične vrednosti u vreme izvršavanja, proverite da 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đe

 Српски