Arbeide med celler

Oversikt

Hvert regneark eksponerer en cells samling som kartlegger Excel‑stil adresse‑strenger (slik som "A1", "B3") til Cell objekter. Du får tilgang til en celle direkte ved indeks:

from aspose.cells_foss import Workbook, Cell

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

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

Verdier, formler og stilinformasjon finnes alle på Cell objektet. Du kan enten endre en celle på stedet ved å skrive til dens .value eller .formula egenskap, eller erstatte cellen helt ved å tilordne en ny Cell instans til adressen.


Lese og skrive verdier

Tildel til cell.value for å skrive en streng, heltall eller flyttall. Les den samme egenskapen tilbake for å hente det som ble lagret.

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

Den .value egenskapen godtar enhver Python skalar. Biblioteket lagrer den Python type som den er; ingen implisitt konvertering skjer ved skrivetid.


Bruke Cell‑konstruktøren

Den Cell konstruktøren lar deg opprette en celle med en verdi (og eventuelt en formel) i ett enkelt uttrykk. Tilordne den resulterende Cell objektet til adresseindeksen for å plassere den i arket.

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

Det første posisjonsargumentet til Cell er verdien. Når du sender None den cellen lagres uten verdi, noe som er nyttig når du har til hensikt å sette en formel separat eller ønsker en eksplisitt tom celle i stedet for en fraværende.


Formelceller

En formelcelle lagrer en Excel‑kompatibel uttrykksstreng ved siden av (eller i stedet for) en statisk verdi. Det finnes to måter å opprette en på.

Via Cell‑konstruktøren — pass None som verdien og formelstrengen som det andre argumentet:

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

Via .formula egenskap — sett egenskapen på en eksisterende celle:

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

Rask referanse for vanlige formler

FormålFormelstreng
Summer et område=SUM(A1:A10)
Gjennomsnitt av et område=AVERAGE(A1:A10)
Maksimumsverdi=MAX(A1:A10)
Minimumsverdi=MIN(A1:A10)
Tell ikke‑tom=COUNT(A1:A10)
Betinget verdi=IF(A1>0,"Positive","Non-positive")
Slå opp en verdi=VLOOKUP(D1,A1:B10,2,FALSE)
Kombiner strenger=CONCATENATE(A1," ",B1)

Formelstrenger må starte med =. Biblioteket lagrer dem ordrett; Excel (eller en kompatibel leser) evaluerer uttrykket når filen åpnes.


Iterere over data

Bruk en standard Python-løkke for å fylle en kolonne eller rad fra en liste:

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

Den enumerate(iterable, start=N) mønsteret kartlegger rent på Excel-radnumre fordi Excel‑rader er 1‑baserte. Starter på start=2 reserverer rad 1 for en overskrift.


Blandet verdityper

Det følgende komplette eksemplet bygger et lite datasett med en tekstoverskriftsrad, tre datarader som inneholder heltall, flyttall og strenger, og en formelrad som oppsummerer de numeriske kolonnene.

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

Etter at filen er åpnet i Excel (eller et hvilket som helst kompatibelt regnearkprogram), den D kolonnen og den B5 / D5 celler vil vise de evaluerte resultatene av formeluttrykkene.


Tips

None verdi vs tom streng

Cell(None) og ws.cells["A1"].value = None opprett en celle uten lagret verdi — uatskillelig fra en celle som aldri ble skrevet i de fleste regneark lesere. Cell("") eller ws.cells["A1"].value = "" opprett en celle som eksplisitt inneholder en tom streng, som noen lesere og formler behandler annerledes (for eksempel, =COUNT ignorerer celler med tom streng på samme måte som den ignorerer tomme celler, men =COUNTA teller dem).

Formelstreng vs statisk verdi

Lesing .value fra en formelcelle returnerer None (eller den siste bufrede verdien hvis en ble satt før formelen ble tildelt). Lesing .formula returnerer uttrykkstrengen. Hvis du trenger å skille mellom en formelcelle og en plain-value-celle ved kjøring, sjekk om ws.cells["A1"].formula er ikke tom:

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

Se også

 Norsk