Cellákkal való munka

Áttekintés

Minden munkalap egy cells gyűjteményt tesz elérhetővé, amely Excel‑stílusú címkarakterláncokat (például "A1", "B3") térképez Cell objektumokra. Egy cellához közvetlenül a szubscript használatával férhet hozzá:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Access a cell by address
cell = ws.cells["A1"]

Az értékek, képletek és stílusinformációk mind a Cell objektumon élnek. Ön vagy módosíthat egy cellát helyben, ha beleírja a .value vagy .formula tulajdonságba, vagy teljesen kicserélheti a cellát egy új Cell példány hozzárendelésével a címhez.


Értékek olvasása és írása

Hozzárendelés a cell.value -hez, hogy karakterláncot, egész számot vagy lebegőpontos számot írjon. Olvassa vissza ugyanazt a tulajdonságot, hogy visszakapja a tárolt értéket.

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

A .value property bármilyen Python skalárt fogad el. A könyvtár a Python típust változatlanul; írási időben nem történik implicit konverzió.


A Cell konstruktor használata

A Cell constructor lehetővé teszi, hogy cellát hozz létre egy értékkel (és opcionálisan egy képlet) egyetlen kifejezésben. Rendeld hozzá a kapott Cell objektumot a cím alindexet, hogy a lapba helyezd.

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

Az első pozicionális argumentum a Cell az érték. Amikor átadod None a cellát érték nélkül tárolja, ami hasznos, ha képletet szeretnél beállítani külön, vagy ha kifejezetten üres cellát szeretnél, a hiányzó helyett.


Képletcellák

A képletcellában egy Excel-kompatibilis kifejezés karakterlánc tárolódik egy statikus érték mellett (vagy helyette). Két módon hozható létre.

A Cell konstruktoron keresztül — add át None értékként, és a képlet karakterláncát második argumentumként:

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

A .formula tulajdonság — állítsd be a tulajdonságot egy meglévő cellán:

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

Gyakori képletek gyorsreferenciája

CélKéplet karakterlánc
Tartomány összege=SUM(A1:A10)
Tartomány átlaga=AVERAGE(A1:A10)
Legnagyobb érték=MAX(A1:A10)
Minimum érték=MIN(A1:A10)
Nem üres elemek száma=COUNT(A1:A10)
Feltételes érték=IF(A1>0,"Positive","Non-positive")
Érték keresése=VLOOKUP(D1,A1:B10,2,FALSE)
Karakterláncok összefűzése=CONCATENATE(A1," ",B1)

A képlet karakterláncoknak a következővel kell kezdődniük =. A könyvtár szó szerint tárolja őket; az Excel (vagy egy kompatibilis olvasó) kiértékeli a kifejezést, amikor a fájlt megnyitják.


Adatok iterálása

Használjon egy szabványos Python ciklust egy oszlop vagy sor feltöltéséhez egy listából:

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

A enumerate(iterable, start=N) minta tisztán leképezhető az Excel sorokra mivel az Excel sorok 1-től kezdődnek. Kezdve a start=2 az 1. sort fenntartja egy fejlécnek.


Vegyes értéktípusok

Az alábbi teljes példa egy kis adathalmazt hoz létre egy szöveges fejléc sorral, három adat sorral, amelyek egész számokat, lebegőpontos számokat és karakterláncokat tartalmaznak, valamint egy képlet sorral, amely összegzi a numerikus oszlopokat.

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

A fájl Excelben (vagy bármely kompatibilis táblázatkezelő alkalmazásban) történő megnyitása után, a D oszlop és a B5 / D5 a cellák megjelenítik a kiértékelt eredményeket a képletkifejezések eredményeit.


Tippek

None érték vs üres karakterlánc

Cell(None) és ws.cells["A1"].value = None hozz létre egy cellát tárolt érték nélkül érték — megkülönböztethetetlen egy olyan cellától, amelyet a legtöbb táblázatkezelőben soha nem írtak olvasók. Cell("") vagy ws.cells["A1"].value = "" hozz létre egy cellát, amely kifejezetten üres karakterláncot tartalmaz, amelyet egyes olvasók és képletek másként kezelnek (például, =COUNT figyelmen kívül hagyja az üres karakterláncú cellákat ugyanúgy, ahogy a üres cellákat, de =COUNTA számolja őket).

Képlet karakterlánc vs statikus érték

Olvasás .value egy képletcellából visszaadja None (vagy az utolsó gyorsítótárazott értéket, ha azt beállították, mielőtt a képletet hozzárendelték). Olvasás .formula visszaadja a kifejezés karakterláncot. Ha meg kell különböztetned egy képletcellát és egy plain-value cell a futásidőben, ellenőrizze, hogy ws.cells["A1"].formula nem üres:

cell = ws.cells["A1"]
if cell.formula:
    print(f"Formula: {cell.formula}")
else:
    print(f"Value: {cell.value}")

Lásd még

 Magyar