Práce s buňkami

Přehled

Každý pracovní list odhaluje: cells sbírka mapování adresních řetězců ve stylu Excel (např. "A1", "B3") až k Cell Přístup k buňce je přímo pomocí podpísem:

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 informace o stylu jsou všechny živé na systému. Cell - Můžete. buď zmutovat buňku na místě tím, že se píše do ní. .value nebo: .formula majetek, nebo zcela nahradit buňku přiřazením nové bužky. Cell Příklad na adresu.


Čtení a psaní hodnot

Přidělit na: cell.value Napsat řetěz, celé číslo nebo plout. Přečtěte si to samé Navrátit majetek zpět, aby se vrátil cokoliv bylo 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")

Úřad pro bezpečnost a ochranu zdraví .value Vlastnost přijímá jakýkoliv Python skalární. Knihovna ukládá Python typ as-is; při psaní se nepřihodí žádné implicitní konverze.


Použití konstruktoru buněk

Úřad pro bezpečnost a ochranu zdraví Cell konstruktor umožňuje vytvořit buňku s hodnotou (a volitelně a) Výsledek se přidělí v čísle: Cell Námitky proti adresní podpis, který je umístěn do 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")

První poziční argument k Cell Je to hodnota. Když projdete None Částka: buňka je uložená bez hodnoty, což je užitečné, když máte v úmyslu nastavit vzorec nebo chcete jasně prázdnou buňku spíše než chybějící.


Části vzorce

V buňce vzorce se vedle (nebo místo) statické hodnoty ukládá řetěz výrazů kompatibilních s Excelem. Existuje dva způsoby, jak ji vytvořit.

Prostřednictvím konstruktoru Cell -Prosím. None jako hodnota a řetěz vzorce jako 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")

Prostřednictvím: .formula majetek - nastavit vlastnost na existující buňku:

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

Společná vzorce Rychlý odkaz

Účel:Číslo vzorce
Součet rozmezí=SUM(A1:A10)
Průměr rozmezí=AVERAGE(A1:A10)
Maximální hodnota=MAX(A1:A10)
Minimální hodnota=MIN(A1:A10)
Počítání neprázdné=COUNT(A1:A10)
Podmínková hodnota=IF(A1>0,"Positive","Non-positive")
Hledání hodnoty=VLOOKUP(D1,A1:B10,2,FALSE)
Konkatenované řetězce=CONCATENATE(A1," ",B1)

Režim formul musí začít na: =.Knihovna je ukládá doslova . Excel . (nebo kompatibilní čtenář) vyhodnocuje výraz při otevření souboru.


Iterování dat

Použijte standardní Pythonovou smyčku k vyplnění sloupce nebo řádku ze seznamu:

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

Úřad pro bezpečnost a ochranu zdraví enumerate(iterable, start=N) Mapy vzorů čistě na čísla řádků programu Excel protože řádky Excela jsou založeny na 1. Začínáme od start=2 rezervy řádek 1 pro a - Ne, to je…


Typy smíšených hodnot

Následující kompletní příklad vytváří malý soubor dat s řádkem textu, třemi datařady obsahujícími celá čísla, plovoucí a režijní řády a řadou vzorce shrnujícím číselné sloupce.

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 otevření souboru v Excelu (nebo jakékoli kompatibilní aplikaci pro tabulky) je třeba použít:, Částka: D sloupce a B5 / D5 Buňky zobrazí vyhodnocené výsledky. z výrazných vzorců.


Tipy.

None hodnota vs. prázdný řetěz

Cell(None) a) ws.cells["A1"].value = None vytvořit buňku bez ukládání hodnota - nerozlišitelná od buňky, která nebyla nikdy zapsána ve většině tabulek. čtenáři. Cell("") nebo: ws.cells["A1"].value = "" vytvořit buňku, která explicitně obsahuje prázdný řetěz, který některé čtenáře a vzorce zachází jinak (například:, =COUNT ignoruje prázdné řetězcovité buňky stejným způsobem, jak ignorují prázdnou. buňky, ale =COUNTA počítá je).

Základní hodnota vzoru:

Čtení .value z buňky vzoru se vrací None (nebo poslední ukládaná hodnota, pokud: před přiřazením vzorce). Čtení .formula vrací se číslo Pokud potřebujete rozlišit mezi buňkou vzorce a celku s prostou hodnotou při spuštění, zkontrolujte, zda ws.cells["A1"].formula není prázdný:

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

Viz také:

 Čeština