Lucrul cu celule
Prezentare generală
Fiecare foaie de lucru expune o cells colecție care mapează șiruri de adrese în stil Excel (cum ar fi "A1", "B3") Cell obiecte. Accesezi o celulă direct prin subscript:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Valorile, formulele și informațiile de stil se află toate pe Cell obiect. Poți fie să modifici o celulă la loc prin scrierea în .value sau .formula proprietate, sau să înlocuiești complet celula prin atribuirea unui nou Cell instanță la adresă.
Citirea și scrierea valorilor
Atribuie la cell.value pentru a scrie un șir, un întreg sau un float. Citește același proprietatea înapoi pentru a recupera orice a fost stocat.
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 proprietatea acceptă orice scalar Python. Biblioteca stochează tipul Python așa cum este; nu are loc nicio conversie implicită în timpul scrierii.
Folosirea constructorului Cell
The Cell constructorul vă permite să creați o celulă cu o valoare (și opțional o formulă) într-o singură expresie. Atribuiți rezultatul Cell obiect la subscriptul adresei pentru a-l plasa în foaie.
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")Primul argument pozițional pentru Cell este valoarea. Când treci None cel celula este stocată fără valoare, ceea ce este util când intenționezi să setezi o formulă separat sau vrei o celulă explicit goală în loc de una absentă.
Celule cu formulă
O celulă cu formulă stochează un șir de expresie compatibil cu Excel alături de (sau în locul) unei valori statice. Există două moduri de a crea una.
Prin constructorul Cell — trece None ca valoarea și șirul de formulă ca al doilea 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")Prin .formula proprietate — setează proprietatea pe o celulă existentă:
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")Referință rapidă pentru formule comune
| Scop | Șir de formulă |
|---|---|
| Suma unui interval | =SUM(A1:A10) |
| Media unui interval | =AVERAGE(A1:A10) |
| Valoare maximă | =MAX(A1:A10) |
| Valoare minimă | =MIN(A1:A10) |
| Numără ne-gol | =COUNT(A1:A10) |
| Valoare condițională | =IF(A1>0,"Positive","Non-positive") |
| Caută o valoare | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Concatenează șiruri | =CONCATENATE(A1," ",B1) |
Șirurile de formulă trebuie să înceapă cu =. Biblioteca le stochează exact; Excel (sau un cititor compatibil) evaluează expresia când fișierul este deschis.
Iterarea peste date
Folosește o buclă standard Python pentru a popula o coloană sau un rând dintr-o listă:
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) modelul se potrivește curat cu numerele de rând din Excel pentru că rândurile din Excel încep de la 1. Începând de la start=2 rezervă rândul 1 pentru un antet.
Tipuri de valori mixte
Următorul exemplu complet construiește un set de date mic cu un rând de antet text, trei rânduri de date care conțin numere întregi, numere în virgulă mobilă și șiruri de caractere, și un rând de formulă care rezumă coloanele numerice.
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")După deschiderea fișierului în Excel (sau în orice aplicație de foi de calcul compatibilă), the D coloana și the B5 / D5 celulele vor afișa rezultatele evaluate ale expresiilor de formulă.
Sfaturi
None valoare vs șir gol
Cell(None) și ws.cells["A1"].value = None creați o celulă fără stocare valoare — indistinguibilă de o celulă care nu a fost niciodată scrisă în majoritatea foilor de calcul cititori. Cell("") sau ws.cells["A1"].value = "" creați o celulă care explicit conține un șir gol, pe care unii cititori și formule îl tratează diferit (de exemplu, =COUNT ignoră celulele cu șir gol în același mod în care ignoră celulele goale celule, dar =COUNTA le numără).
Șir de formulă vs valoare statică
Citire .value dintr‑o celulă cu formulă returnează None (sau ultima valoare memorată dacă una a fost setată înainte ca formula să fie atribuită). Citirea .formula returnează șirul expresiei. Dacă trebuie să distingi între o celulă cu formulă și o celulă cu valoare simplă în timpul execuției, verifică dacă ws.cells["A1"].formula nu este gol:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Vezi și
- Referință API: Documentație completă a claselor și metodelor pentru
aspose.cells_foss - Bază de cunoștințe: Ghiduri practice orientate pe sarcini
- Prezentare generală a produsului: Rezumat al funcționalităților și capabilităților
- Începeți / Instalare: pip install și configurare
- Blog: Prezentarea Aspose.Cells FOSS: Prezentare generală a bibliotecii și pornire rapidă