Lavorare con le celle

Panoramica

Ogni foglio di lavoro espone un cells collezione che mappa stringhe di indirizzo in stile Excel (come ad esempio "A1", "B3") a Cell oggetti. È possibile accedere a una cella direttamente tramite indice:

from aspose.cells_foss import Workbook, Cell

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

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

Valori, formule e informazioni di stile risiedono tutti sull’ Cell oggetto. È possibile modificare una cella in loco scrivendo al suo .value o .formula proprietà, o sostituire completamente la cella assegnando un nuovo Cell istanza all’indirizzo.


Lettura e scrittura dei valori

Assegna a cell.value per scrivere una stringa, intero o float. Leggi lo stesso proprietà per recuperare ciò che è stato memorizzato.

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

Il .value property accetta qualsiasi scalare Python. La libreria memorizza il Python type così com’è; nessuna conversione implicita avviene al momento della scrittura.


Utilizzare il costruttore Cell

Il Cell constructor ti consente di creare una cella con un valore (e opzionalmente un formula) in un’unica espressione. Assegna il risultato Cell oggetto al sottoscrizione dell’indirizzo per inserirlo nel foglio.

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

Il primo argomento posizionale per Cell è il valore. Quando passi None il la cella viene memorizzata senza valore, il che è utile quando intendi impostare una formula separatamente o desideri una cella esplicitamente vuota anziché assente.


Celle con formula

Una cella con formula memorizza una stringa di espressione compatibile con Excel accanto (o al posto) di un valore statico. Ci sono due modi per crearne una.

Tramite il costruttore Cell — passa None come valore e la stringa della formula come secondo argomento:

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

Tramite il .formula proprietà — imposta la proprietà su una cella esistente:

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

Riferimento rapido alle formule comuni

ScopoStringa della formula
Somma di un intervallo=SUM(A1:A10)
Media di un intervallo=AVERAGE(A1:A10)
Valore massimo=MAX(A1:A10)
Valore minimo=MIN(A1:A10)
Conta non vuoti=COUNT(A1:A10)
Valore condizionale=IF(A1>0,"Positive","Non-positive")
Cerca un valore=VLOOKUP(D1,A1:B10,2,FALSE)
Concatena stringhe=CONCATENATE(A1," ",B1)

Le stringhe di formula devono iniziare con =. La libreria le memorizza così come sono; Excel (o un lettore compatibile) valuta l’espressione quando il file viene aperto.


Iterare sui Dati

Usa un ciclo standard Python per popolare una colonna o una riga da un elenco:

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

Il enumerate(iterable, start=N) modello si mappa perfettamente sui numeri di riga di Excel poiché le righe di Excel partono da 1. Iniziare a start=2 riserva la riga 1 per un intestazione.


Tipi di valore misti

Il seguente esempio completo crea un piccolo set di dati con una riga di intestazione testuale, tre righe di dati contenenti interi, float e stringhe, e una riga di formula che riepiloga le colonne numeriche.

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

Dopo aver aperto il file in Excel (o in qualsiasi applicazione di foglio di calcolo compatibile), il D colonna e il B5 / D5 le celle mostreranno i risultati valutati delle espressioni di formula.


Suggerimenti

None valore vs stringa vuota

Cell(None) e ws.cells["A1"].value = None crea una cella senza valore memorizzato valore — indistinguibile da una cella che non è mai stata scritta nella maggior parte dei fogli di calcolo lettori. Cell("") oppure ws.cells["A1"].value = "" crea una cella che esplicitamente contiene una stringa vuota, che alcuni lettori e formule trattano diversamente (ad esempio, =COUNT ignora le celle con stringa vuota allo stesso modo in cui ignora le celle vuote celle, ma =COUNTA le conta).

Stringa di formula vs valore statico

Lettura .value da una cella formula restituisce None (o l’ultimo valore memorizzato se ne è stato impostato uno prima che la formula fosse assegnata). Lettura .formula restituisce il stringa dell’espressione. Se hai bisogno di distinguere tra una cella formula e una cella plain-value a runtime, verifica se ws.cells["A1"].formula non è vuoto:

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

Vedi anche

 Italiano