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
| Svrha | Niz 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
- API referenca: Potpuna dokumentacija klase i metode za
aspose.cells_foss - Baza znanja: Vodiči usmjereni na zadatke
- Pregled proizvoda: Sažetak značajki i mogućnosti
- Početak / Instalacija: pip install i postavljanje
- Blog: Predstavljanje Aspose.Cells FOSS: Pregled biblioteke i brzi početak