Come formattare le celle con Aspose.Cells FOSS in Python
Aspose.Cells FOSS for Python ti consente di applicare stili di carattere e riempimenti di sfondo a singole celle usando il cell.style.font e cell.style.fill API. I colori sono espressi come 8-digit AARRGGBB hex strings; ad esempio "FFFF0000" per rosso opaco, senza # prefisso. Tutto lo styling è eseguito in puro Python senza dipendenze da Microsoft Excel o da qualsiasi libreria di rendering esterna.
Perché formattare le celle con Aspose.Cells FOSS?
- Nessun Excel richiesto: La formattazione viene eseguita interamente in Python su qualsiasi OS.
- Modello di colore coerente: Una singola stringa a 8 cifre AARRGGBB copre sia il colore del carattere sia il colore di riempimento con lo stesso formato.
- Nomi delle proprietà leggibili:
bold,italic,underline,strikethrough: nois_prefisso da ricordare. - Oggetti Font riutilizzabili: Crea un
Fontistanza una volta e applicala a molte celle per un branding coerente.
Guida passo-passo
Passo 1: Installa Aspose.Cells FOSS per Python
pip install aspose-cells-fossNon sono richiesti pacchetti di sistema aggiuntivi. Importa le classi di cui hai bisogno da aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatPasso 2: Imposta il nome e la dimensione del carattere
Accedi a una cella tramite ws.cells["address"] e scrivi su cell.style.font.name e cell.style.font.size.
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"].value = "Styled Header"
cell = ws.cells["A1"]
cell.style.font.name = "Arial"
cell.style.font.size = 14
workbook.save("styled.xlsx")Il carattere predefinito è Calibri a 11pt. Qualsiasi nome di carattere disponibile sul sistema in cui il file verrà aperto può essere usato; specificare un carattere non installato non genera un errore ma potrebbe essere visualizzato con un carattere di riserva quando il file viene aperto.
Passo 3: Imposta il colore del carattere usando una stringa esadecimale AARRGGBB
I colori dei caratteri sono impostati con un 8-digit hexadecimal string in AARRGGBB ordine (Alpha, Red, Green, Blue). Fai non includere un # prefisso.
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"].value = "Red text"
ws.cells["A1"].style.font.color = "FFFF0000" # opaque red
ws.cells["A2"].value = "Blue text"
ws.cells["A2"].style.font.color = "FF0000FF" # opaque blue
ws.cells["A3"].value = "Green text"
ws.cells["A3"].style.font.color = "FF00FF00" # opaque green
workbook.save("colored_text.xlsx")Riferimento comune ai colori AARRGGBB:
| Colore | stringa AARRGGBB | Note |
|---|---|---|
| Nero | FF000000 | Colore del carattere predefinito |
| Bianco | FFFFFFFF | Usa su sfondi scuri |
| Rosso | FFFF0000 | Avviso o evidenzia il testo |
| Blu | FF0000FF | Link o enfasi |
| Verde | FF00FF00 | Valori positivi o successo |
| Arancione | FFFF8000 | Testo di avviso |
| Grigio | FF808080 | Testo attenuato o disabilitato |
| Blu navy | FF1E64C8 | Blu aziendale / di brand |
I primi due cifre esadecimali sono il canale alfa. Usa FF per piena opacità. Valori inferiori a FF producono risultati semitrasparenti nei renderer che supportano il blending alfa.
Passo 4: Applica Grassetto, Corsivo, Sottolineato e Barrato
Imposta ogni attributo direttamente come booleano. I nomi delle proprietà sono bold, italic, underline, e strikethrough; fai non usare is_bold oppure is_italic (questi nomi non esistono nell’API FOSS e genereranno AttributeError).
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"].value = "Bold"
ws.cells["A1"].style.font.bold = True
ws.cells["A2"].value = "Italic"
ws.cells["A2"].style.font.italic = True
ws.cells["A3"].value = "Underline"
ws.cells["A3"].style.font.underline = True
ws.cells["A4"].value = "Strikethrough"
ws.cells["A4"].style.font.strikethrough = True
ws.cells["A5"].value = "Bold + Italic"
ws.cells["A5"].style.font.bold = True
ws.cells["A5"].style.font.italic = True
workbook.save("font_styles.xlsx")Tutte e quattro le flag hanno valore predefinito False. Possono essere combinate liberamente nella stessa cella.
Passo 5: Imposta un colore di riempimento di sfondo solido
Usa cell.style.fill.set_solid_fill("AARRGGBB") per applicare un riempimento di sfondo. Il formato colore è la stessa stringa esadecimale a 8 cifre AARRGGBB usata per il colore del carattere.
Per rimuovere completamente un riempimento, chiama cell.style.fill.set_no_fill().
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"].value = "Navy background"
ws.cells["A1"].style.fill.set_solid_fill("FF1E64C8") # opaque navy blue
ws.cells["A2"].value = "Light yellow background"
ws.cells["A2"].style.fill.set_solid_fill("FFFFFFCC") # pale yellow
ws.cells["A3"].value = "No fill"
ws.cells["A3"].style.fill.set_no_fill() # remove any fill
workbook.save("cell_fills.xlsx")set_solid_fill() e set_no_fill() sono mutualmente esclusive; chiamare una sovrascrive l’altra nella stessa cella.
Passo 6: Combina più stili su una cella
Puoi concatenare un numero qualsiasi di proprietà di stile sullo stesso riferimento di cella. Non c’è limite al numero di attributi di stile impostati prima del salvataggio.
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["B2"].value = "Branded Header"
cell = ws.cells["B2"]
##Font
cell.style.font.name = "Arial"
cell.style.font.size = 16
cell.style.font.bold = True
cell.style.font.color = "FFFFFFFF" # white text
##Background
cell.style.fill.set_solid_fill("FF1E64C8") # navy fill
workbook.save("branded_header.xlsx")
print("Branded header cell saved.")Questo produce un’etichetta bianca, in grassetto, 16pt Arial su uno sfondo navy, un modello comune per le intestazioni di colonna.
Passo 7: Usa il costruttore Font per stili riutilizzabili
Il Font classe può essere istanziata con tutte le sue proprietà in una sola chiamata, quindi assegnata a più celle. Questo è utile quando si desidera applicare uno stile coerente a molte celle senza ripetere le stesse assegnazioni di proprietà.
from aspose.cells_foss import Workbook, Font
workbook = Workbook()
ws = workbook.worksheets[0]
##Define a reusable heading font
heading_font = Font(
name="Arial",
size=14,
color="FF1E64C8", # navy
bold=True,
italic=False,
underline=False,
strikethrough=False
)
##Define a reusable body font
body_font = Font(
name="Calibri",
size=11,
color="FF000000", # black (default)
bold=False,
italic=False,
underline=False,
strikethrough=False
)
##Apply heading font to header row
headers = ["Product", "SKU", "Price", "Stock"]
for col, header in enumerate(headers):
addr = f"{chr(65 + col)}1"
ws.cells[addr].value = header
ws.cells[addr].style.font = heading_font
ws.cells[addr].style.fill.set_solid_fill("FFE8EFF9") # light blue tint
##Apply body font to data rows
data = [
("Widget A", "WGT-001", 9.99, 150),
("Widget B", "WGT-002", 14.99, 87),
("Widget C", "WGT-003", 4.49, 320),
]
for row_idx, (name, sku, price, stock) in enumerate(data, start=2):
ws.cells[f"A{row_idx}"].value = name
ws.cells[f"B{row_idx}"].value = sku
ws.cells[f"C{row_idx}"].value = price
ws.cells[f"D{row_idx}"].value = stock
for col in "ABCD":
ws.cells[f"{col}{row_idx}"].style.font = body_font
workbook.save("product_table.xlsx")
print("Product table with reusable fonts saved.")Valori predefiniti del costruttore Font (tutti i parametri sono opzionali):
| Parametro | Predefinito |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Esempio completo funzionante
Il seguente script autonomo crea una cartella di lavoro con una riga di intestazione stilizzata, righe di dati colorate e una cella di riepilogo che dimostra tutte le API di stile trattate sopra:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormat
workbook = Workbook()
ws = workbook.worksheets[0]
ws.name = "Sales Report"
##--- Header row (bold, white text on navy background) ---
headers = ["Region", "Q1", "Q2", "Q3", "Q4", "Total"]
for col, text in enumerate(headers):
addr = f"{chr(65 + col)}1"
ws.cells[addr].value = text
ws.cells[addr].style.font.name = "Arial"
ws.cells[addr].style.font.size = 12
ws.cells[addr].style.font.bold = True
ws.cells[addr].style.font.color = "FFFFFFFF" # white
ws.cells[addr].style.fill.set_solid_fill("FF1E64C8") # navy
##--- Data rows ---
data = [
("North", 42000, 47500, 53000, 61000),
("South", 31000, 28500, 35000, 39000),
("East", 55000, 62000, 58000, 71000),
("West", 27000, 30000, 33000, 41000),
]
for row_idx, (region, q1, q2, q3, q4) in enumerate(data, start=2):
ws.cells[f"A{row_idx}"].value = region
ws.cells[f"B{row_idx}"].value = q1
ws.cells[f"C{row_idx}"].value = q2
ws.cells[f"D{row_idx}"].value = q3
ws.cells[f"E{row_idx}"].value = q4
# Total formula
ws.cells[f"F{row_idx}"] = Cell(None, f"=SUM(B{row_idx}:E{row_idx})")
# Alternate row shading
if row_idx % 2 == 0:
for col in "ABCDEF":
ws.cells[f"{col}{row_idx}"].style.fill.set_solid_fill("FFE8EFF9")
##--- Italic note in a footer cell ---
ws.cells["A7"].value = "All values in USD"
ws.cells["A7"].style.font.italic = True
ws.cells["A7"].style.font.color = "FF808080" # gray
ws.cells["A7"].style.font.size = 9
##--- Strikethrough on a deprecated label ---
ws.cells["A8"].value = "Old metric (deprecated)"
ws.cells["A8"].style.font.strikethrough = True
ws.cells["A8"].style.font.color = "FF808080"
workbook.save("sales_report_styled.xlsx", SaveFormat.XLSX)
print("Styled sales report saved.")Problemi comuni
Formato colore errato: utilizzo di #RRGGBB invece di AARRGGBB
Un prefisso # (ad es. "#FF0000") o una stringa RGB a 6 cifre non produrrà il colore previsto. La proprietà si aspetta esattamente 8 hex digits with no prefix: "FFFF0000". Le prime due cifre sono il canale alfa; usa FF per piena opacità.
AttributeError: 'Font' object has no attribute 'is_bold'
L’API FOSS utilizza bold, italic, underline, e strikethrough come i nomi delle proprietà. Il is_bold / is_italic la convenzione di denominazione appartiene a una libreria diversa e non esiste qui. Sostituisci qualsiasi is_bold riferimento con bold.
Modifiche di stile non visibili dopo il salvataggio
Assicurati di impostare le proprietà di stile sull’oggetto cella prima di chiamare workbook.save(). Impostare una proprietà su una cella dopo la chiamata di salvataggio non ha effetto sul file già scritto. Se riutilizzi un cell variabile, conferma che faccia ancora riferimento all’indirizzo corretto della cella.
Riempimento e carattere nella stessa cella creano conflitto visivo
Non c’è conflitto di API; puoi sempre impostare entrambi cell.style.font.color e cell.style.fill.set_solid_fill() in modo indipendente. Assicurati che il colore del testo abbia un contrasto sufficiente rispetto al colore di sfondo. Testo bianco (FFFFFFFF) su un riempimento scuro come il blu navy (FF1E64C8) è una combinazione affidabile.
Domande frequenti
Come rimuovere un riempimento di sfondo e riportare una cella a nessun riempimento?
Chiama cell.style.fill.set_no_fill(). Questo rimuove qualsiasi riempimento solido impostato in precedenza dalla cella.
Come ripristinare una cella al carattere predefinito (Calibri 11pt nero)?
Riassegna esplicitamente i valori predefiniti:
cell.style.font.name = "Calibri"
cell.style.font.size = 11
cell.style.font.color = "FF000000"
cell.style.font.bold = False
cell.style.font.italic = False
cell.style.font.underline = False
cell.style.font.strikethrough = FalseIn alternativa, crea un Font() istanza senza argomenti (tutti i valori predefiniti) e assegnala: cell.style.font = Font().
Posso applicare lo stesso stile di carattere a un intervallo di celle in un ciclo?
Sì. Itera sugli indirizzi delle celle e imposta le stesse proprietà su ciascuna. Se usi il Font costruttore per creare un condiviso Font oggetto, assegnalo a ogni cella con ws.cells[addr].style.font = my_font.
Lo stile influisce sui valori o sulle formule delle celle?
No. Lo styling è puramente metadati visivi. cell.style.font e cell.style.fill non toccare .value o .formula.
Quali formati di salvataggio conservano gli stili?
Gli stili sono completamente preservati quando si salva in SaveFormat.XLSX. Il SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, e SaveFormat.MARKDOWN i formati sono formati plain-text o structured-text e non contengono informazioni di styling.
Risorse correlate:
- Aspose.Cells FOSS for Python: Developer Guide
- Operazioni del foglio di calcolo
- Come caricare i fogli di calcolo in Python
- Come creare grafici in Python
- Riferimento API: Font, Fill, Style
- Panoramica del prodotto: Riepilogo di funzionalità e capacità
- Blog: Presentazione di Aspose.Cells FOSS: Panoramica della libreria e avvio rapido