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
| Svrha | String 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
- API referenca: Potpuna dokumentacija klasa i metoda za
aspose.cells_foss - Baza znanja: Vodiči usmereni na zadatke
- Pregled proizvoda: Sažetak funkcija i mogućnosti
- Početak / Instalacija: pip install i podešavanje
- Blog: Predstavljanje Aspose.Cells FOSS: Pregled biblioteke i brzi početak