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ål | Formelstreng |
|---|---|
| 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å
- API-referanse: Full klasse- og metodedokumentasjon for
aspose.cells_foss - Kunnskapsbase: Oppgaveorienterte trinnvise guider
- Produktoversikt: Sammendrag av funksjoner og muligheter
- Kom i gang / Installasjon: pip install og oppsett
- Blogg: Introduksjon av Aspose.Cells FOSS: Bibliotekoversikt og rask start