Werken met cellen
Overzicht
Elk werkblad exposeert een cells collectie die Excel‑achtige adresstrings (zoals "A1", "B3") naar Cell objecten. Je krijgt direct toegang tot een cel via subscript:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Waarden, formules en stijl‑informatie bevinden zich allemaal op de Cell object. Je kunt of een cel in‑place muteren door naar zijn .value of .formula eigenschap, of de cel volledig vervangen door een nieuw Cell instance aan het adres toe te wijzen.
Waarden lezen en schrijven
Wijs toe aan cell.value om een string, integer of float te schrijven. Lees dezelfde eigenschap terug om op te halen wat er opgeslagen was.
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")De .value eigenschap accepteert elke Python scalar. De bibliotheek slaat de Python type zoals hij is; er vindt geen impliciete conversie plaats op het moment van schrijven.
De Cell‑constructor gebruiken
De Cell constructor laat je een cel maken met een waarde (en eventueel een formule) in één enkele expressie. Wijs het resulterende Cell object aan de adres-subscript om het in het blad te plaatsen.
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")Het eerste positionele argument voor Cell is de waarde. Wanneer je doorgeeft None de cel wordt opgeslagen zonder waarde, wat handig is wanneer je van plan bent een formule apart in te stellen of een expliciet lege cel wilt in plaats van een ontbrekende.
Formulecellen
Een formulecel slaat een Excel‑compatibele expressiestring op naast (of in plaats van) een statische waarde. Er zijn twee manieren om er één te maken.
Via de Cell constructor — geef None als de waarde en de formule‑string als het tweede 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 de .formula eigenschap — stel de eigenschap in op een bestaande cel:
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")Snelle referentie voor veelvoorkomende formules
| Doel | Formule tekenreeks |
|---|---|
| Som van een bereik | =SUM(A1:A10) |
| Gemiddelde van een bereik | =AVERAGE(A1:A10) |
| Maximumwaarde | =MAX(A1:A10) |
| Minimumwaarde | =MIN(A1:A10) |
| Tel niet-lege | =COUNT(A1:A10) |
| Voorwaardelijke waarde | =IF(A1>0,"Positive","Non-positive") |
| Zoek een waarde | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Strings samenvoegen | =CONCATENATE(A1," ",B1) |
Formule‑strings moeten beginnen met =. De bibliotheek slaat ze letterlijk op; Excel (of een compatibele lezer) evalueert de uitdrukking wanneer het bestand wordt geopend.
Itereren over gegevens
Gebruik een standaard Python-lus om een kolom of rij vanuit een lijst te vullen:
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")De enumerate(iterable, start=N) patroon mappt netjes op Excel‑rijnummers omdat Excel‑rijen 1‑gebaseerd zijn. Beginnend bij start=2 reserveert rij 1 voor een koptekst.
Gemengde waardetypen
Het volgende volledige voorbeeld bouwt een kleine dataset met een tekstkoprij, drie gegevensrijen met gehele getallen, kommagetallen en strings, en een formule-rij die de numerieke kolommen samenvat.
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")Na het openen van het bestand in Excel (of een compatibele spreadsheet‑applicatie), de D kolom en de B5 / D5 cellen zullen de geëvalueerde resultaten weergeven van de formule‑expressies.
Tips
None waarde vs lege tekenreeks
Cell(None) en ws.cells["A1"].value = None maak een cel zonder opgeslagen waarde — ononderscheidbaar van een cel die in de meeste spreadsheets nooit is geschreven lezers. Cell("") of ws.cells["A1"].value = "" maak een cel die expliciet een lege tekenreeks bevat, die sommige lezers en formules anders behandelen (bijvoorbeeld, =COUNT negeert lege‑tekenreeks‑cellen op dezelfde manier als het lege cellen negeert, maar =COUNTA telt ze).
Formule‑tekenreeks vs statische waarde
Lezen .value van een formulecel retourneert None (of de laatst gecachete waarde als er één was ingesteld voordat de formule werd toegewezen). Lezen .formula geeft de expressiestring. Als je moet onderscheiden tussen een formulecel en een plain-value cel tijdens runtime, controleer of ws.cells["A1"].formula is niet leeg:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Zie ook
- API-referentie: Volledige klasse- en methodedocumentatie voor
aspose.cells_foss - Kennisbank: Taakgerichte stap-voor-stap handleidingen
- Productoverzicht: Samenvatting van functies en mogelijkheden
- Aan de slag / Installatie: pip install en configuratie
- Blog: Introductie van Aspose.Cells FOSS: Bibliotheekoverzicht en snelle start