Cum să stilizați celulele cu Aspose.Cells FOSS în Python
Aspose.Cells FOSS for Python îți permite să aplici stiluri de font și umpleri de fundal la celule individuale utilizând cell.style.font și cell.style.fill API-uri. Culorile sunt exprimate ca 8-digit AARRGGBB hex strings; de exemplu "FFFF0000" pentru roșu opac, fără # prefix. Toate stilizările sunt realizate în Python pur, fără nicio dependență de Microsoft Excel sau de orice bibliotecă externă de redare.
De ce să stilizați celulele cu Aspose.Cells FOSS?
- Nu este necesar Excel: Formatarea rulează complet în Python pe orice sistem de operare.
- Model de culoare consistent: Un singur șir de 8 cifre AARRGGBB acoperă culoarea fontului și culoarea de umplere cu același format.
- Nume de proprietăți ușor de citit:
bold,italic,underline,strikethrough:nuis_prefix de reținut. - Obiecte Font reutilizabile: Crează un
Fontinstanță o singură dată și aplică‑o la multe celule pentru o marcă coerentă.
Ghid pas cu pas
Pasul 1: Instalați Aspose.Cells FOSS pentru Python
pip install aspose-cells-fossNu sunt necesare pachete suplimentare de sistem. Importă clasele de care ai nevoie din aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatPasul 2: Setează numele și dimensiunea fontului
Accesează o celulă prin ws.cells["address"] și scrie în 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")Fontul implicit este Calibri la 11pt. Orice nume de font disponibil pe sistemul pe care fișierul va fi deschis poate fi utilizat; specificarea unui font care nu este instalat nu cauzează o eroare, dar poate fi redat cu un font de rezervă când fișierul este deschis.
Pasul 3: Setează culoarea fontului utilizând un șir hexazecimal AARRGGBB
Culoarea fontului este setată cu un 8-digit hexadecimal string în AARRGGBB ordine (Alpha, Roșu, Verde, Albastru). Fă nu include 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")Referință comună de culoare AARRGGBB:
| Culoare | șir AARRGGBB | Note |
|---|---|---|
| Negru | FF000000 | Culoare implicită a fontului |
| Alb | FFFFFFFF | Utilizați pe fundaluri întunecate |
| Roșu | FFFF0000 | Text de alertă sau evidențiat |
| Albastru | FF0000FF | Legături sau accentuare |
| Verde | FF00FF00 | Valori pozitive sau succes |
| Portocaliu | FFFF8000 | Text de avertizare |
| Gri | FF808080 | Text estompat sau dezactivat |
| Bleu marin | FF1E64C8 | Albastru corporativ / de marcă |
Primele două cifre hexazecimale reprezintă canalul alfa. Folosiți FF pentru opacitate totală. Valorile sub FF produc rezultate semi-transparente în randatoare care suportă amestecarea alfa.
Pasul 4: Aplică Bold, Italic, Underline și Strikethrough
Setați fiecare atribut direct ca un boolean. Numele proprietăților sunt bold, italic, underline, și strikethrough; faceți nu utilizați is_bold sau is_italic (aceste nume nu există în API-ul FOSS și vor genera 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")Toate cele patru steaguri au valoarea implicită False. Pot fi combinate liber pe aceeași celulă.
Pasul 5: Setează o culoare de umplere solidă de fundal
Utilizați cell.style.fill.set_solid_fill("AARRGGBB") pentru a aplica un umplere de fundal. Formatul culorii este același șir hexazecimal de 8 cifre AARRGGBB ca și pentru culoarea fontului.
Pentru a elimina complet umplerea, apelați 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() se exclud reciproc; apelarea uneia suprascrie cealaltă pe aceeași celulă.
Pasul 6: Combină stiluri multiple pe o singură celulă
Puteți înlănțui orice număr de proprietăți de stil pe aceeași referință de celulă. Nu există limită privind câte atribute de stil pot fi setate înainte de salvare.
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.")Acest lucru produce o etichetă albă, îngroșată, de 16pt Arial pe un fundal albastru închis, un model comun pentru antetele de coloană.
Pasul 7: Folosește constructorul Font pentru stiluri reutilizabile
The Font clasa poate fi instanțiată cu toate proprietățile sale într-un singur apel, apoi atribuită mai multor celule. Acest lucru este util când doriți un stil de casă consistent aplicat pe multe celule fără a repeta aceleași atribuiri de proprietăți.
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 implicite ale constructorului Font (toți parametrii sunt opționali):
| Parametru | Implicit |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Exemplu complet funcțional
Scriptul auto‑conținut de mai jos creează un registru de lucru cu un rând de antet stilizat, rânduri de date colorate și o celulă de rezumat care demonstrează fiecare API de stilizare acoperit mai sus:
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.")Probleme comune
Format de culoare greșit: utilizând #RRGGBB în loc de AARRGGBB
Un prefix # (de exemplu. "#FF0000") sau un șir RGB de 6 caractere nu va produce culoarea așteptată. Proprietatea așteaptă exact 8 hex digits with no prefix: "FFFF0000". Primele două cifre reprezintă canalul alfa; utilizați FF pentru opacitate completă.
AttributeError: 'Font' object has no attribute 'is_bold'
API-ul FOSS folosește bold, italic, underline, și strikethrough ca nume de proprietate. Aceasta is_bold / is_italic convenția de denumire aparține unei alte biblioteci și nu există aici. Înlocuiți orice is_bold referință cu bold.
Modificările de stil nu sunt vizibile după salvare
Asigurați-vă că setați proprietățile de stil pe obiectul celulă înainte de apelarea workbook.save(). Setarea unei proprietăți pe o celulă după apelul de salvare nu are efect asupra fișierului deja scris. Dacă reutilizați un cell variabilă, confirmați că încă se referă la adresa corectă a celulei.
Umplerea și fontul pe aceeași celulă intră în conflict vizual
Nu există niciun conflict de API; poți seta întotdeauna ambele cell.style.font.color și cell.style.fill.set_solid_fill() independent. Asigură-te că culoarea textului are un contrast suficient față de culoarea de fundal. Textul alb (FFFFFFFF) pe un fundal închis, cum ar fi albastru marin (FF1E64C8) este o combinație fiabilă.
Întrebări frecvente
Cum pot elimina umplerea de fundal și să readuc o celulă la stare fără umplere?
Apelează cell.style.fill.set_no_fill(). Aceasta elimină orice umplere solidă setată anterior din celulă.
Cum pot reseta o celulă la fontul implicit (Calibri 11pt negru)?
Reatribuiți valorile implicite explicit:
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 = FalseAlternativ, creează un Font() instanță fără argumente (toate valorile implicite) și atribuie‑i: cell.style.font = Font().
Pot să aplic același stil de font unui interval de celule într-o buclă?
Da. Iterează peste adresele celulelor și setează aceleași proprietăți pentru fiecare. Dacă folosești Font constructorul pentru a crea un partajat Font obiect, atribuiți-l fiecărei celule cu ws.cells[addr].style.font = my_font.
Stilizarea afectează valorile sau formulele celulelor?
Nu. Stilizarea este pur metadata vizuală. cell.style.font și cell.style.fill nu atingeți .value sau .formula.
Ce formate de salvare păstrează stilurile?
Stilurile sunt păstrate integral când se salvează în SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, și SaveFormat.MARKDOWN formatele sunt formate text simplu sau text structurat și nu conțin informații de stilizare.
Resurse conexe:
- Aspose.Cells FOSS for Python: Developer Guide
- Operații pe foi de calcul
- Cum să încărcați foi de calcul în Python
- Cum să creați grafice în Python
- Referință API: Font, Fill, Style
- Prezentare generală a produsului: Rezumat al funcționalităților și capabilităților
- Blog: Introducerea Aspose.Cells FOSS: Prezentare generală a bibliotecii și pornire rapidă