Cum să stilizați celulele cu Aspose.Cells FOSS în Python

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?

  1. Nu este necesar Excel: Formatarea rulează complet în Python pe orice sistem de operare.
  2. Model de culoare consistent: Un singur șir de 8 cifre AARRGGBB acoperă culoarea fontului și culoarea de umplere cu același format.
  3. Nume de proprietăți ușor de citit: bold, italic, underline, strikethrough:nu is_ prefix de reținut.
  4. Obiecte Font reutilizabile: Crează un Font instanță 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-foss

Nu sunt necesare pachete suplimentare de sistem. Importă clasele de care ai nevoie din aspose.cells_foss:

from aspose.cells_foss import Workbook, Cell, Font, SaveFormat

Pasul 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 AARRGGBBNote
NegruFF000000Culoare implicită a fontului
AlbFFFFFFFFUtilizați pe fundaluri întunecate
RoșuFFFF0000Text de alertă sau evidențiat
AlbastruFF0000FFLegături sau accentuare
VerdeFF00FF00Valori pozitive sau succes
PortocaliuFFFF8000Text de avertizare
GriFF808080Text estompat sau dezactivat
Bleu marinFF1E64C8Albastru 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):

ParametruImplicit
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

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 = False

Alternativ, 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:

 Română