Treballant amb cel·les

Visió general

Cada full de càlcul exposa un cells col·lecció que assigna cadenes d’adreça d’estil Excel (com ara "A1", "B3") a Cell objectes. Accedeixes a una cel·la directament per subíndex:

from aspose.cells_foss import Workbook, Cell

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

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

Els valors, les fórmules i la informació d’estil viuen tots al Cell objecte. Pots o bé modificar una cel·la in situ escrivint al seu .value o .formula propietat, o substituir completament la cel·la assignant-ne una de nova Cell instància a l’adreça.


Lectura i escriptura de valors

Assigna a cell.value per escriure una cadena, un enter o un float. Llegeix el mateix propietat per recuperar el que s’hagi emmagatzemat.

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

El .value propietat accepta qualsevol escalar Python. La biblioteca emmagatzema el tipus Python tal com està; no es produeix cap conversió implícita en temps d’escriptura.


Utilitzant el constructor Cell

El Cell constructor et permet crear una cel·la amb un valor (i opcionalment una fórmula) en una única expressió. Assigna el resultant Cell objecte a l’ subíndex d’adreça per col·locar-lo al full.

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

El primer argument posicional per a Cell és el valor. Quan passeu None el la cel·la s’emmagatzema sense valor, cosa que és útil quan preveu establir una fórmula separadament o vol una cel·la explícitament buida en lloc d’una absent.


Cel·les de fórmula

Una cel·la de fórmula emmagatzema una cadena d’expressió compatible amb Excel juntament amb (o en lloc de) un valor estàtic. Hi ha dues maneres de crear-ne una.

Mitjançant el constructor Cell — passa None com a valor i la cadena de fórmula com a segon 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")

Mitjançant el .formula propietat — estableix la propietat en una cel·la existent:

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

Referència ràpida de fórmules comunes

PropòsitCadena de fórmula
Suma d’un interval=SUM(A1:A10)
Mitjana d’un interval=AVERAGE(A1:A10)
Valor màxim=MAX(A1:A10)
Valor mínim=MIN(A1:A10)
Compta no buits=COUNT(A1:A10)
Valor condicional=IF(A1>0,"Positive","Non-positive")
Cerca un valor=VLOOKUP(D1,A1:B10,2,FALSE)
Concatenar cadenes=CONCATENATE(A1," ",B1)

Les cadenes de fórmula han de començar amb =. La biblioteca les emmagatzema tal qual; Excel (o un lector compatible) avalua l’expressió quan s’obre el fitxer.


Iterant sobre dades

Utilitzeu un bucle Python estàndard per omplir una columna o fila a partir d’una llista:

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

El enumerate(iterable, start=N) patró s’ajusta perfectament als números de fila d’Excel perquè les files d’Excel comencen a 1. Començant a start=2 reserva la fila 1 per a una capçalera.


Tipus de valors mixtos

L’exemple complet següent crea un petit conjunt de dades amb una fila de capçalera de text, tres files de dades que contenen enters, nombres de coma flotant i cadenes, i una fila de fórmula que resumeix les columnes numèriques.

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

Després d’obrir el fitxer a Excel (o qualsevol aplicació de fulls de càlcul compatible), el D columna i la B5 / D5 les cel·les mostraran els resultats avaluats de les expressions de fórmula.


Consells

None valor vs cadena buida

Cell(None) i ws.cells["A1"].value = None crea una cel·la sense emmagatzemat valor — indistinguible d’una cel·la que mai s’ha escrit en la majoria de fulls de càlcul lectors. Cell("") o ws.cells["A1"].value = "" crea una cel·la que explícitament conté una cadena buida, que alguns lectors i fórmules tracten de manera diferent (per exemple, =COUNT ignora les cel·les de cadena buida de la mateixa manera que ignora les cel·les en blanc cel·les, però =COUNTA les compta).

Cadena de fórmula vs valor estàtic

Lectura .value d’una cel·la de fórmula retorna None (o el darrer valor en memòria cau si es va establir abans que la fórmula fos assignada). Lectura .formula retorna el cadena d’expressió. Si necessites distingir entre una cel·la de fórmula i una cel·la de valor simple en temps d’execució, comprova si ws.cells["A1"].formula no és buit:

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

Vegeu també

 Català