Práca s bunkami
Prehľad
Každý hárok vystavuje cells kolekciu, ktorá mapuje reťazce adries v štýle Excel (napríklad "A1", "B3") na Cell objekty. K bunku pristupujete priamo pomocou indexu:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Hodnoty, vzorce a informácie o štýle všetky sídlia na Cell objekte. Môžete buď zmeniť bunku na mieste zapísaním do jej .value alebo .formula vlastnosti, alebo nahradiť bunku úplne priradením nového Cell inštancie k adrese.
Čítanie a zápis hodnôt
Priradiť do cell.value na zápis reťazca, celého čísla alebo desatinného čísla. Prečítajte rovnakú vlastnosť späť na získanie toho, čo bolo uložené.
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 vlastnosť akceptuje akýkoľvek Python skalár. Knižnica ukladá typ Python tak, ako je; žiadna implicitná konverzia sa nevykoná pri zápise.
Použitie konštruktora Cell
The Cell konstruktor vám umožňuje vytvoriť bunku s hodnotou (a voliteľne a vzorec) v jednom výraze. Priraďte výsledný Cell objekt do adresného podindexu, aby ste ho umiestnili do hárku.
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")Prvý pozičný argument pre Cell je hodnota. Keď odovzdáte None tento bunka je uložená bez hodnoty, čo je užitočné, keď chcete nastaviť vzorec samostatne alebo chcete explicitne prázdnu bunku namiesto chýbajúcej.
Bunky s formulou
Bunca s formulou ukladá reťazec výrazu kompatibilný s Excelom vedľa (alebo namiesto) statickej hodnoty. Existujú dva spôsoby, ako takú vytvoriť.
Pomocou konštruktora Cell — odovzdajte None ako hodnotu a reťazec vzorca ako druhý 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")Pomocou .formula vlastnosti — nastavte vlastnosť na existujúcej bunke:
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")Rýchly odkaz na bežné formuláre
| Účel | Reťazec vzorca |
|---|---|
| Súčet rozsahu | =SUM(A1:A10) |
| Priemer rozsahu | =AVERAGE(A1:A10) |
| Maximálna hodnota | =MAX(A1:A10) |
| Minimálna hodnota | =MIN(A1:A10) |
| Počítať neprázdne | =COUNT(A1:A10) |
| Podmienená hodnota | =IF(A1>0,"Positive","Non-positive") |
| Vyhľadať hodnotu | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Zreťaziť reťazce | =CONCATENATE(A1," ",B1) |
Reťazce vzorca musia začínať s =. Knižnica ich ukladá doslovne; Excel (alebo kompatibilný čítač) vyhodnotí výraz pri otvorení súboru.
Iterovanie nad dátami
Použite štandardnú slučku Python na naplnenie stĺpca alebo riadku zo zoznamu:
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) vzor sa čisto mapuje na čísla riadkov v Exceli pretože riadky v Exceli sú číslované od 1. Začínajúc na start=2 vyhradzuje riadok 1 pre hlavičku.
Zmiešané typy hodnôt
Nasledujúci kompletný príklad vytvára malý dataset s textovým riadkom hlavičky, tromi riadkami dát obsahujúcimi celé čísla, desatinné čísla a reťazce a riadkom s formulou, ktorý sumarizuje číselné stĺpce.
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")Po otvorení súboru v Exceli (alebo v akejkoľvek kompatibilnej tabuľkovej aplikácii), tento D stĺpec a B5 / D5 bunky zobrazia vyhodnotené výsledky vzorcových výrazov.
Tipy
None hodnota vs prázdny reťazec
Cell(None) a ws.cells["A1"].value = None vytvorte bunku bez uložených hodnota — nerozoznateľná od bunky, ktorá nebola nikdy zapísaná vo väčšine tabuľkových procesorov čitateľov. Cell("") alebo ws.cells["A1"].value = "" vytvorte bunku, ktorá explicitne obsahuje prázdny reťazec, ktorý niektorí čitatelia a vzorce spracúvajú odlišne (napríklad, =COUNT ignoruje bunky s prázdnym reťazcom rovnako ako ignoruje prázdne bunky, ale =COUNTA počítajú ich).
Reťazec vzorca vs statická hodnota
Čítanie .value z bunky s formulou vráti None (alebo poslednú uloženú hodnotu, ak bola nastavená pred priradením vzorca). Čítanie .formula vráti reťazec výrazu. Ak potrebujete rozlíšiť medzi bunkou s formulou a a plain-value bunka v čase behu, skontrolujte, či ws.cells["A1"].formula nie je prázdna:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Pozri tiež
- Referenčná dokumentácia API: Kompletná dokumentácia tried a metód pre
aspose.cells_foss - Znalostná báza: Sprievodcovia zameraní na úlohy
- Prehľad produktu: Zhrnutie funkcií a možností
- Začíname / Inštalácia: pip install a nastavenie
- Blog: Predstavenie Aspose.Cells FOSS: Prehľad knižnice a rýchly štart