Com estilitzar cel·les amb Aspose.Cells FOSS a Python
Aspose.Cells FOSS for Python et permet aplicar estils de lletra i emplenaments de fons a cèl·lules individuals utilitzant les API cell.style.font i cell.style.fill. Els colors s’expressen com a cadenes hexadecimals de 8 dígits AARRGGBB; per exemple "FFFF0000" per a vermell opac, sense prefix #. Tot l’estil es realitza en Python pur sense cap dependència de Microsoft Excel ni cap biblioteca externa de renderització.
Per què estilitzar cel·les amb Aspose.Cells FOSS?
- No cal Excel: El formatatge s’executa completament en Python a qualsevol SO.
- Model de color consistent: Una única cadena de 8 dígits AARRGGBB cobreix el color de la lletra i el color de farciment amb el mateix format.
- Noms de propietats llegibles:
bold,italic,underline,strikethrough: cap prefixis_per recordar. - Objectes Font reutilitzables: Creeu una instància
Fontuna vegada i apliqueu-la a moltes cel·les per a una marca coherent.
Guia pas a pas
Pas 1: Instal·la Aspose.Cells FOSS for Python
pip install aspose-cells-fossNo es requereixen paquets de sistema addicionals. Importa les classes que necessites des de aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatPas 2: Establir el nom i la mida del tipus de lletra
Accedeix a una cel·la a través de ws.cells["address"] i escriu a cell.style.font.name i 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")La font predeterminada és Calibri a 11pt. Qualsevol nom de font disponible al sistema on s’obrirà el fitxer pot ser utilitzat; especificar una font que no estigui instal·lada no genera cap error però pot renderitzar‑se amb una font de reserva quan s’obri el fitxer.
Pas 3: Estableix el color de la font utilitzant una cadena hexadecimal AARRGGBB
Els colors de la font es defineixen amb una cadena hexadecimal de 8 dígits en ordre AARRGGBB (Alfa, Vermell, Verd, Blau). No inclogueu un prefix #.
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")Referència de colors AARRGGBB comuna:
| Color | AARRGGBB string | Notes |
|---|---|---|
| Negre | FF000000 | Color de lletra per defecte |
| Blanc | FFFFFFFF | Utilitzar sobre fons foscos |
| Vermell | FFFF0000 | Text d’alerta o ressaltat |
| Blau | FF0000FF | Enllaços o èmfasi |
| Verd | FF00FF00 | Valors positius o èxit |
| Taronja | FFFF8000 | Text d’advertència |
| Gris | FF808080 | Text atenuat o desactivat |
| Marí | FF1E64C8 | Blau corporatiu / de marca |
Els dos primers dígits hexadecimals són el canal alfa. Useu FF per a totalment opac. Els valors per sota de FF produeixen resultats semitransparents en renderitzadors que admeten mescla alfa.
Pas 4: Aplica Negreta, Cursiva, Subratllat i Ratllat
Estableix cada atribut directament com a booleà. Els noms de les propietats són bold, italic, underline i strikethrough; no utilitzis is_bold o is_italic (aquests noms no existeixen a l’API FOSS i generaran 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")Les quatre senyals per defecte són False. Es poden combinar lliurement a la mateixa cel·la.
Pas 5: Establir un color de farciment de fons sòlid
Utilitzeu cell.style.fill.set_solid_fill("AARRGGBB") per aplicar un emplenament de fons. El format del color és la mateixa cadena hexadecimal de 8 dígits AARRGGBB que el color de la font.
Per eliminar completament un farciment, crida 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() i set_no_fill() són mútuament exclusius; invocar-ne un sobrescriu l’altre a la mateixa cel·la.
Pas 6: Combina diversos estils en una cel·la
Podeu encadenar qualsevol nombre de propietats d’estil a la mateixa referència de cel·la. No hi ha cap límit al nombre d’atributs d’estil que es poden establir abans de desar.
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.")Això produeix una etiqueta blanca, en negreta, de 16 punts Arial sobre un fons blau marí, un patró comú per a les capçaleres de columna.
Pas 7: Utilitzeu el Constructor de fonts per a estils reutilitzables
La classe Font es pot instanciar amb totes les seves propietats en una sola crida, i després assignar-la a diverses cel·les. Això és útil quan voleu aplicar un estil corporatiu coherent a moltes cel·les sense repetir les mateixes assignacions de propietats.
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.")Valors per defecte del constructor de Font (tots els paràmetres són opcionals):
| Paràmetre | Per defecte |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Exemple complet de funcionament
El següent script autònom crea un llibre de treball amb una fila d’encapçalament amb estil, files de dades amb color i una cel·la de resum que demostra totes les API d’estil cobertes anteriorment:
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.")Problemes comuns
Format de color incorrecte: s’està utilitzant #RRGGBB en lloc de AARRGGBB
Un prefix # (p. ex. "#FF0000") o una cadena RGB de 6 dígits no produirà el color esperat. La propietat espera exactament 8 dígits hexadecimals sense prefix: "FFFF0000". Els dos primers dígits són el canal alfa; utilitzeu FF per a totalment opac.
AttributeError: 'Font' object has no attribute 'is_bold'
L’API FOSS utilitza bold, italic, underline i strikethrough com a noms de propietat. La convenció de nomenclatura is_bold / is_italic pertany a una biblioteca diferent i no existeix aquí. Substituïu qualsevol referència a is_bold per bold.
Els canvis d’estil no són visibles després de desar
Assegureu-vos que establiu les propietats d’estil a l’objecte cel·la abans de cridar workbook.save(). Establir una propietat en una cel·la després de la crida de desament no té cap efecte sobre el fitxer ja escrit. Si reutilitzeu una variable cell, confirmeu que encara fa referència a l’adreça de cel·la correcta.
El farciment i la font a la mateixa cel·la entren en conflicte visualment
No hi ha cap conflicte d’API; sempre podeu establir tant cell.style.font.color com cell.style.fill.set_solid_fill() de manera independent. Assegureu-vos que el color del text tingui un contrast suficient respecte al color de fons. El text blanc (FFFFFFFF) sobre un farciment fosc com el blau marí (FF1E64C8) és una combinació fiable.
Preguntes freqüents
Com elimino un farciment de fons i torno una cel·la a sense farciment?
Crida cell.style.fill.set_no_fill(). Això elimina qualsevol farciment sòlid establert prèviament de la cel·la.
Com puc restablir una cel·la al tipus de lletra per defecte (Calibri 11pt negre)?
Reassigna explícitament els valors per defecte:
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 = FalseAlternativament, creeu una instància Font() sense arguments (tots els valors per defecte) i assigneu‑la: cell.style.font = Font().
Puc aplicar el mateix estil de lletra a un interval de cel·les en un bucle?
Sí. Itera sobre les adreces de les cel·les i estableix les mateixes propietats a cadascuna. Si utilitzes el constructor Font per crear un objecte Font compartit, assigna‑l a cada cel·la amb ws.cells[addr].style.font = my_font.
L’estil afecta els valors o les fórmules de les cel·les?
No. L’estil és purament metadades visuals. cell.style.font i cell.style.fill no toquen .value ni .formula.
Quins formats de desament conserven els estils?
Els estils es conserven completament en desar a SaveFormat.XLSX. Els formats SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON i SaveFormat.MARKDOWN són formats de text pla o de text estructurat i no contenen informació d’estil.
Recursos relacionats:
- Aspose.Cells FOSS per a Python: Guia del desenvolupador
- Operacions de fulls de càlcul
- Com carregar fulls de càlcul a Python
- Com crear gràfics a Python
- Referència de l’API: Font, Ompliment, Estil
- Visió general del producte: resum de característiques i capacitats
- Blog: Presentant Aspose.Cells FOSS: Visió general de la biblioteca i inici ràpid