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 cel·les individuals utilitzant el cell.style.font i cell.style.fill APIs. Els colors s’expressen com a 8-digit AARRGGBB hex strings; per exemple "FFFF0000" per a vermell opac, sense # prefix. Tot l’estil es realitza en pur Python 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 en 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: nois_prefix per recordar. - Objectes de font reutilitzables: Crea un
Fontinstància una vegada i aplica-la a moltes cel·les per a una marca coherent.
Guia pas a pas
Pas 1: Instal·la Aspose.Cells FOSS per a Python
pip install aspose-cells-fossNo es requereixen paquets de sistema addicionals. Importa les classes que necessitis des de aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatPas 2: Defineix el nom i la mida de la 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 tipografia disponible al sistema on s’obrirà el fitxer es pot utilitzar; especificar una tipografia que no estigui instal·lada no genera un error però pot renderitzar-se amb una tipografia de reserva quan s’obri el fitxer.
Pas 3: Defineix el color de la lletra mitjançant una cadena hex AARRGGBB
Els colors de la tipografia es defineixen amb un 8-digit hexadecimal string en AARRGGBB ordre (Alfa, Vermell, Verd, Blau). Fer no incloure 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 comuna de colors AARRGGBB:
| Color | cadena AARRGGBB | Notes |
|---|---|---|
| Negre | FF000000 | Color de la font 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’avís |
| Gris | FF808080 | Text atenuat o desactivat |
| Marí | FF1E64C8 | Blau corporatiu / de marca |
Els dos primers dígits hexadecimals són el canal alfa. Utilitzeu FF per a total opacitat. Valors inferiors 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; feu no utilitza 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 banderes per defecte són False. Es poden combinar lliurement a la mateixa cel·la.
Pas 5: Defineix un color de farciment de fons sòlid
Utilitza cell.style.fill.set_solid_fill("AARRGGBB") per aplicar un farciment 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 excloents; cridar-ne una sobrescriu l’altra a la mateixa cel·la.
Pas 6: Combina múltiples estils en una cel·la
Podeu encadenar qualsevol nombre de propietats d’estil a la mateixa referència de cel·la. No hi ha límit en quantes propietats d’estil 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ò genera una etiqueta blanca, en negreta, de 16 pt Arial sobre un fons blau marí, un patró comú per a les capçaleres de columna.
Pas 7: Utilitza el constructor Font per a estils reutilitzables
El Font la classe 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 vols aplicar un estil de casa 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 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 i funcional
El següent script autònom crea un llibre de treball amb una fila de capçalera amb estil, files de dades amb color i una cel·la de resum que demostra totes les API d’estil descrites 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 comptes 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 hex digits with no prefix: "FFFF0000". Els dos primers dígits són el canal alfa; utilitza FF per a completament opac.
AttributeError: 'Font' object has no attribute 'is_bold'
L’API FOSS utilitza bold, italic, underline, i strikethrough com a noms de propietat. El is_bold / is_italic la convenció de nomenclatura pertany a una biblioteca diferent i no existeix aquí. Substituïu qualsevol is_bold referència amb bold.
Canvis d’estil no visibles després de desar
Assegureu-vos de definir les propietats d’estil a l’objecte cel·la abans de cridar workbook.save(). Definir una propietat en una cel·la després de la crida a guardar no té cap efecte sobre el fitxer ja escrit. Si reutilitzeu una cell variable, confirmeu que encara fa referència a l’adreça de cel·la correcta.
El farciment i la tipografia a la mateixa cel·la entren en conflicte visualment
No hi ha cap conflicte d’API; sempre pots establir ambdós cell.style.font.color i cell.style.fill.set_solid_fill() de manera independent. Assegura’t que el color del text tingui suficient contrast amb el color de fons. Text blanc (FFFFFFFF) sobre un farciment fosc com el blau marí (FF1E64C8) és una combinació fiable.
Preguntes freqüents
Com puc eliminar un farciment de fons i tornar 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 a la tipografia 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, crea una Font() instància sense arguments (tots els valors per defecte) i assigna-la: cell.style.font = Font().
Puc aplicar el mateix estil de tipografia a un rang 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 Font constructor per crear un compartit Font objecte, 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 només metadades visuals. cell.style.font i cell.style.fill no toquis .value o .formula.
Quins formats de desament conserven l’estil?
Els estils es conserven completament en desar a SaveFormat.XLSX. El SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, i SaveFormat.MARKDOWN els formats són formats de text pla o de text estructurat i no contenen informació d’estil.
Recursos relacionats:
- Aspose.Cells FOSS for Python: Developer Guide
- Operacions de fulls de càlcul
- Com carregar fulls de càlcul en Python
- Com crear gràfics en Python
- Referència de l’API: Font, Fill, Style
- Visió general del producte: Resum de característiques i capacitats
- Blog: Presentant Aspose.Cells FOSS: Visió general de la biblioteca i inici ràpid