Kako stilizovati ćelije uz Aspose.Cells FOSS u Python

Kako stilizovati ćelije uz Aspose.Cells FOSS u Python

Aspose.Cells FOSS for Python vam omogućava da primenite stilove fonta i popune pozadine na pojedinačne ćelije koristeći cell.style.font i cell.style.fill API-je. Boje se izražavaju kao 8-digit AARRGGBB hex strings; na primer "FFFF0000" za neprovidnu crvenu, bez # prefiksa. Svo stilizovanje se vrši u čistom Python bez ikakve zavisnosti od Microsoft Excel-a ili bilo koje eksterne biblioteke za renderovanje.

Zašto stilizovati ćelije uz Aspose.Cells FOSS?

  1. Nije potreban Excel: Formatiranje se izvršava u potpunosti u Python na bilo kojem OS-u.
  2. Dosledan model boja: Jedan 8‑cifreni AARRGGBB string pokriva boju fonta i boju popunjavanja istim formatom.
  3. Čitljiva imena svojstava: bold, italic, underline, strikethrough: ne is_ prefiks za pamćenje.
  4. Ponovo upotrebljivi Font objekti: Kreirajte Font instancu jednom i primenite je na mnoge ćelije za dosledno brendiranje.

Vodič korak po korak

Korak 1: Instalirajte Aspose.Cells FOSS za Python

pip install aspose-cells-foss

Nisu potrebni dodatni sistemski paketi. Uvezite klase koje su vam potrebne iz aspose.cells_foss:

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

Korak 2: Postavite ime i veličinu fonta

Pristupite ćeliji kroz ws.cells["address"] i pišite u 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")

Podrazumevani font je Calibri veličine 11pt. Svako ime fonta dostupno na sistemu na kojem će se fajl otvoriti može se koristiti; navođenje fonta koji nije instaliran ne izaziva grešku, ali se pri otvaranju fajla može prikazati zamenski font.


Korak 3: Postavite boju fonta koristeći AARRGGBB heksadecimalni string

Boje fonta se postavljaju pomoću an 8-digit hexadecimal string u AARRGGBB redosled (Alpha, Red, Green, Blue). Uradi ne uključi # prefiks.

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")

Uobičajena AARRGGBB referenca boja:

BojaAARRGGBB stringNapomene
CrnaFF000000Podrazumevana boja fonta
BelaFFFFFFFFKoristiti na tamnim pozadinama
CrvenaFFFF0000Upozorenje ili isticanje teksta
PlavaFF0000FFLinkovi ili naglašavanje
ZelenaFF00FF00Pozitivne vrednosti ili uspeh
NarandžastaFFFF8000Tekst upozorenja
SivaFF808080Utišani ili onemogućeni tekst
Mornarska plavaFF1E64C8Korporativna / brend plava

Prva dva heksadecimalna broja predstavljaju alfa kanal. Koristite FF za potpuno neprozirno. Vrednosti ispod FF daju poluprozirne rezultate u rendererima koji podržavaju alfa mešanje.


Korak 4: Primeni podebljano, kurziv, podvučeno i precrtano

Postavite svaki atribut direktno kao logičku vrednost. Nazivi svojstava su bold, italic, underline, i strikethrough; uradite ne koristite is_bold ili is_italic (ta imena ne postoje na FOSS API‑ju i izazvaće 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")

Sva četiri zastavice podrazumevano su na False. Mogu se slobodno kombinovati u istoj ćeliji.


Korak 5: Postavi čvrstu boju pozadine

Koristite cell.style.fill.set_solid_fill("AARRGGBB") za primenu pozadinskog popunjavanja. Format boje je isti 8‑cifreni AARRGGBB heksadecimalni niz kao i boja fonta.

Da biste potpuno uklonili popunjavanje, pozovite 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() su međusobno isključivi; pozivanje jednog prepisuje drugi u istoj ćeliji.


Korak 6: Kombinujte više stilova u jednoj ćeliji

Možete lančati bilo koji broj stilskih svojstava na istu referencu ćelije. Nema ograničenja koliko stilskih atributa možete postaviti pre čuvanja.

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.")

Ovo generiše belu, podebljanu, 16pt Arial oznaku na tamnoplavoj pozadini, uobičajen obrazac za zaglavlja kolona.


Korak 7: Koristite konstruktor Font za ponovo upotrebljive stilove

The Font klasa se može instancirati sa svim svojim svojstvima u jednom pozivu, a zatim dodeliti više ćelija. Ovo je korisno kada želite dosledan kućni stil primenjen na mnoge ćelije bez ponavljanja istih dodela svojstava.

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.")

Podrazumevane vrednosti konstruktora fonta (svi parametri su opcioni):

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

Kompletan radni primer

Sledeći samostalni skript kreira radnu svesku sa stilizovanim zaglavljem, obojenim redovima podataka i ćelijom sa rezimeom koja demonstrira svaki API za stilizovanje koji je gore pokriven:

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.")

Uobičajeni problemi

Pogrešan format boje: korišćenje #RRGGBB umesto AARRGGBB

Vodeći # (npr. "#FF0000") ili 6‑cifreni RGB string neće proizvesti očekivanu boju. Svojstvo očekuje tačno 8 hex digits with no prefix: "FFFF0000". Prva dva broja predstavljaju alfa kanal; koristite FF za potpuno neprovidno.

AttributeError: 'Font' object has no attribute 'is_bold'

FOSS API koristi bold, italic, underline, i strikethrough kao imena svojstava. The is_bold / is_italic konvencija imenovanja pripada drugoj biblioteci i ne postoji ovde. Zamenite bilo koji is_bold referencu sa bold.

Promene stila nisu vidljive nakon čuvanja

Osigurajte da postavite stilova svojstva na objekat ćelije pre pozivanja workbook.save(). Postavljanje svojstva na ćeliju nakon poziva save nema efekta na već upisani fajl. Ako ponovo koristite a cell promenljivu, potvrdite da i dalje ukazuje na ispravnu adresu ćelije.

Popunjavanje i font u istoj ćeliji vizuelno se sukobljavaju

Ne postoji sukob API‑ja; uvek možete postaviti oba cell.style.font.color i cell.style.fill.set_solid_fill() nezavisno. Proverite da boja teksta ima dovoljno kontrasta u odnosu na boju pozadine. Bela boja teksta (FFFFFFFF) na tamnoj pozadini, poput tamnoplave (FF1E64C8) je pouzdana kombinacija.


Često postavljana pitanja

Kako da uklonim pozadinsko popunjavanje i vratim ćeliju u stanje bez popunjavanja?

Pozovite cell.style.fill.set_no_fill(). Ovo uklanja bilo koji prethodno postavljen jednobojni ispun iz ćelije.

Kako da resetujem ćeliju na podrazumevani font (Calibri 11pt crna)?

Ponovo dodelite podrazumevane vrednosti eksplicitno:

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

Alternativno, kreirajte a Font() instancu bez argumenata (sve podrazumevane vrednosti) i dodeli je: cell.style.font = Font().

Mogu li da primenim isti stil fonta na opseg ćelija u petlji?

Da. Prođite kroz adrese ćelija i postavite iste osobine na svaku. Ako koristite the Font konstruktor da kreirate deljeni Font objekat, dodelite ga svakoj ćeliji pomoću ws.cells[addr].style.font = my_font.

Da li stilizovanje utiče na vrednosti ćelija ili formule?

Ne. Stilizovanje je isključivo vizuelni metadata. cell.style.font i cell.style.fill ne dirajte .value ili .formula.

Koji formati za čuvanje čuvaju stilove?

Stilovi su potpuno očuvani prilikom čuvanja u SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, i SaveFormat.MARKDOWN formati su plain-text ili structured-text formati i ne nose informacije o stilizaciji.


Povezani resursi:

 Српски