Arbeiten mit Zellen

Übersicht

Jedes Arbeitsblatt stellt ein cells Sammlung, die Excel‑artige Adresszeichenketten zuordnet (wie "A1", "B3") zu Cell Objekte. Sie greifen direkt über den Index auf eine Zelle zu:

from aspose.cells_foss import Workbook, Cell

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

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

Werte, Formeln und Stilinformationen befinden sich alle auf dem Cell Objekt. Sie können entweder eine Zelle vor Ort ändern, indem Sie in ihr schreiben .value oder .formula Eigenschaft, oder die Zelle vollständig ersetzen, indem Sie eine neue zuweisen Cell Instanz zur Adresse.


Werte lesen und schreiben

Zuweisen zu cell.value einen String, Integer oder Float zu schreiben. Das Gleiche lesen Eigenschaft zurück, um alles abzurufen, was gespeichert wurde.

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

Der .value Eigenschaft akzeptiert jeden Python-Skalar. Die Bibliothek speichert den Python-Typ unverändert; es findet keine implizite Konvertierung zur Schreibzeit statt.


Verwendung des Cell‑Konstruktors

Der Cell Konstruktor ermöglicht es Ihnen, eine Zelle mit einem Wert (und optional einem Formel) in einem einzigen Ausdruck zu erstellen. Weisen Sie das resultierende Cell Objekt dem Adress-Subscript, um ihn im Blatt zu platzieren.

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

Das erste Positionsargument für Cell ist der Wert. Wenn Sie übergeben None die Zelle wird ohne Wert gespeichert, was nützlich ist, wenn Sie beabsichtigen, eine Formel separat oder eine explizit leere Zelle statt einer fehlenden wünschen.


Formelzellen

Eine Formelzelle speichert einen Excel‑kompatiblen Ausdrucksstring zusammen mit (oder anstelle von) einem statischen Wert. Es gibt zwei Möglichkeiten, eine solche zu erstellen.

Über den Cell-Konstruktor — übergeben None als den Wert und die Formelzeichenkette als zweites 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")

Über die .formula Eigenschaft — die Eigenschaft in einer bestehenden Zelle setzen:

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

Schnellreferenz für gängige Formeln

ZweckFormelzeichenfolge
Bereich summieren=SUM(A1:A10)
Durchschnitt eines Bereichs=AVERAGE(A1:A10)
Maximalwert=MAX(A1:A10)
Minimalwert=MIN(A1:A10)
Nicht-leere zählen=COUNT(A1:A10)
Bedingter Wert=IF(A1>0,"Positive","Non-positive")
Wert nachschlagen=VLOOKUP(D1,A1:B10,2,FALSE)
Zeichenketten verketten=CONCATENATE(A1," ",B1)

Formelzeichenketten müssen beginnen mit =. Die Bibliothek speichert sie unverändert; Excel (oder ein kompatibler Leser) wertet den Ausdruck aus, wenn die Datei geöffnet wird.


Iterieren über Daten

Verwenden Sie eine Standard-Python-Schleife, um eine Spalte oder Zeile aus einer Liste zu füllen:

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

Der enumerate(iterable, start=N) Muster lässt sich sauber auf Excel-Zeilennummern abbilden weil Excel-Zeilen bei 1 beginnen. Beginnend bei start=2 reserviert Zeile 1 für ein Kopfzeile.


Gemischte Werttypen

Das folgende vollständige Beispiel erstellt einen kleinen Datensatz mit einer Text‑Kopfzeile, drei Datenzeilen, die Ganzzahlen, Fließkommazahlen und Zeichenketten enthalten, sowie einer Formelezeile, die die numerischen Spalten zusammenfasst.

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

Nach dem Öffnen der Datei in Excel (oder einer beliebigen kompatiblen Tabellenkalkulationsanwendung), die D Spalte und die B5 / D5 Zellen werden die ausgewerteten Ergebnisse anzeigen der Formelausdrücke.


Tipps

None Wert vs leere Zeichenkette

Cell(None) und ws.cells["A1"].value = None erstelle eine Zelle ohne gespeicherten Wert — nicht zu unterscheiden von einer Zelle, die in den meisten Tabellenkalkulationen nie geschrieben wurde Lesern. Cell("") oder ws.cells["A1"].value = "" erstelle eine Zelle, die explizit eine leere Zeichenkette enthält, die von einigen Lesern und Formeln unterschiedlich behandelt wird (zum Beispiel, =COUNT ignoriert leere Zeichenkettenzellen auf dieselbe Weise, wie es leere Zellen ignoriert Zellen, aber =COUNTA zählt sie).

Formelzeichenkette vs statischer Wert

Lesen .value aus einer Formelzelle gibt zurück None (oder der letzte zwischengespeicherte Wert, falls einer vorher gesetzt wurde, bevor die Formel zugewiesen wurde). Lesen .formula gibt zurück Ausdruckszeichenkette. Wenn Sie zwischen einer Formelzelle und einer reinen Wertzelle zur Laufzeit unterscheiden müssen, prüfen Sie, ob ws.cells["A1"].formula ist nicht leer:

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

Siehe auch

 Deutsch