Arbejde med celler

Oversigt

Hvert regneark eksponerer en cells‑samling, der kortlægger Excel‑stil adresse‑strenge (såsom "A1", "B3") til Cell‑objekter. Du får adgang 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"]

Værdier, formler og stilinformationer lever alle på Cell-objektet. Du kan enten ændre en celle på stedet ved at skrive til dens .value- eller .formula-egenskab, eller erstatte cellen helt ved at tildele en ny Cell-instans til adressen.


Læse og skrive værdier

Tildel til cell.value for at skrive en string, integer eller float. Læs den samme property tilbage for at hente, hvad der blev gemt.

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

.value-egenskaben accepterer enhver Python-skalær. Biblioteket gemmer den Python-type som den er; ingen implicit konvertering finder sted ved skrivningstid.


Brug af Cell Constructor

Cell-konstruktøren giver dig mulighed for at oprette en celle med en værdi (og eventuelt en formel) i et enkelt udtryk. Tildel det resulterende Cell-objekt til adresse‑subscriptet for at placere det 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 positionsargument til Cell er værdien. Når du sender None, cellen gemmes uden værdi, hvilket er nyttigt, når du har til hensigt at indstille en formel separat eller ønsker en eksplicit tom celle i stedet for en fraværende.


Formelceller

En formelcelle gemmer en Excel‑kompatibel udtryksstreng ved siden af (eller i stedet for) en statisk værdi. Der er to måder at oprette en på.

Via the Cell constructor — send None som værdien og formel‑strengen som det andet 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")

Via .formula-egenskaben — indstil egenskaben 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")

Almindelige formler hurtigreference

FormålFormelstreng
Summér et område=SUM(A1:A10)
Gennemsnit af et område=AVERAGE(A1:A10)
Maksimal værdi=MAX(A1:A10)
Minimum værdi=MIN(A1:A10)
Tæl ikke‑tomme=COUNT(A1:A10)
Betinget værdi=IF(A1>0,"Positive","Non-positive")
Opslag af en værdi=VLOOKUP(D1,A1:B10,2,FALSE)
Sammenkæd strenge=CONCATENATE(A1," ",B1)

Formelstrenge skal starte med =. Biblioteket gemmer dem ordret; Excel (eller en kompatibel læser) evaluerer udtrykket, når filen åbnes.


Iterering over data

Brug en standard Python‑løkke til at udfylde en kolonne eller række 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")

enumerate(iterable, start=N)-mønsteret kortlægger rent på Excel‑rækkenumre
fordi Excel‑rækker er 1‑baserede. At starte ved start=2 reserverer række 1 til en
overskrift.


Blandet Værdityper

Det følgende komplette eksempel opretter et lille datasæt med en tekst‑header‑række, tre datarækker, der indeholder heltal, flydende tal og strenge, samt en formelrække der opsummerer de numeriske kolonner.

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

Efter at have åbnet filen i Excel (eller et kompatibelt regnearksprogram) vil D‑kolonnen og B5 / D5‑cellerne vise de evaluerede resultater af formeludtrykkene.


Tips

None værdi vs tom streng

Cell(None) og ws.cells["A1"].value = None opretter en celle uden lagret
værdi — uadskillelig fra en celle, der aldrig er skrevet i de fleste regnearksprogrammer.
Cell("") eller ws.cells["A1"].value = "" opretter en celle, der eksplicit
indeholder en tom streng, hvilket nogle læsere og formler behandler forskelligt
(for eksempel ignorerer =COUNT tomme‑streng‑celler på samme måde som den ignorerer tomme
celler, men =COUNTA tæller dem).

Formelstreng vs statisk værdi

Læser du .value fra en formelcelle, returnerer den None (eller den sidst cachede værdi, hvis
en blev sat før formlen blev tildelt). Læser du .formula, returnerer
udtryksstrengen. Hvis du har brug for at skelne mellem en formelcelle og en
almindelig værdi‑celle ved kørselstid, så tjek 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å

 Dansk