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
| Zweck | Formelzeichenfolge |
|---|---|
| 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
- API-Referenz: Vollständige Klassen- und Methodendokumentation für
aspose.cells_foss - Wissensdatenbank: Aufgabenorientierte Anleitungen
- Produktübersicht: Zusammenfassung von Funktionen und Fähigkeiten
- Erste Schritte / Installation: pip-Installation und Einrichtung
- Blog: Einführung von Aspose.Cells FOSS: Bibliotheksübersicht und Schnellstart