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
| Scopo | Stringa 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
- Riferimento API: Documentazione completa di classi e metodi per
aspose.cells_foss - Base di conoscenza: Guide pratiche orientate al compito
- Panoramica del prodotto: Riepilogo di funzionalità e capacità
- Iniziare / Installazione: pip install e configurazione
- Blog: Presentazione di Aspose.Cells FOSS: Panoramica della libreria e avvio rapido