Kako stilizirati ćelije s Aspose.Cells FOSS u Python

Kako stilizirati ćelije s Aspose.Cells FOSS u Python

Aspose.Cells FOSS for Python omogućuje primjenu stilova fonta i pozadinskih ispuna 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 primjer "FFFF0000" za neprozirnu crvenu, bez # prefiksa. Svo stiliziranje se obavlja u čistom Python bez ovisnosti o Microsoft Excelu ili bilo kojoj vanjskoj biblioteci za renderiranje.

Zašto stilizirati ćelije s Aspose.Cells FOSS?

  1. Excel nije potreban: Formatiranje se u potpunosti izvršava u Python na bilo kojem OS-u.
  2. Dosljedan model boja: Jedan 8‑znamenkasti AARRGGBB niz pokriva boju fonta i boju ispune istim formatom.
  3. Čitljiva imena svojstava: bold, italic, underline, strikethrough: nema is_ prefiksa za pamćenje.
  4. Ponovno upotrebljivi Font objekti: Stvori Font instancu jednom i primijeni je na mnoge ćelije za dosljedno brendiranje.

Vodič korak po korak

Korak 1: Instalirajte Aspose.Cells FOSS za Python

pip install aspose-cells-foss

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

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

Korak 2: Postavite naziv fonta i veličinu

Pristupite ćeliji putem 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")

Zadani font je Calibri od 11pt. Svako ime fonta dostupno na sustavu na kojem će se datoteka otvoriti može se koristiti; navođenje fonta koji nije instaliran ne uzrokuje grešku, ali se pri otvaranju datoteke može prikazati s rezervnim fontom.


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

Boje fonta postavljaju se pomoću 8-digit hexadecimal string u AARRGGBB redoslijedu (Alpha, Red, Green, Blue). Do ne uključite # 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 referenca AARRGGBB boja:

BojaAARRGGBB nizNapomene
CrnaFF000000Zadana boja fonta
BijelaFFFFFFFFKoristite na tamnim pozadinama
CrvenaFFFF0000Upozorenje ili istaknuti tekst
PlavaFF0000FFPoveznice ili naglašavanje
ZelenaFF00FF00Pozitivne vrijednosti ili uspjeh
NarančastaFFFF8000Tekst upozorenja
SivaFF808080Utišani ili onemogućeni tekst
Mornarska plavaFF1E64C8Korporativna / brend plava

Prva dva heksadecimalna znaka su alfa kanal. Koristite FF za potpuno neprozirno. Vrijednosti ispod FF generiraju poluprozirne rezultate u rendererima koji podržavaju alfa miješanje.


Korak 4: Primijeni podebljano, kurziv, podcrtano i precrtano

Postavite svaki atribut izravno kao boolean. Nazivi svojstava su bold, italic, underline, i strikethrough; učinite ne koristite is_bold ili is_italic (ta imena ne postoje u FOSS API-ju i izazvat ć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 zadano su na False. Mogu se slobodno kombinirati u istoj ćeliji.


Korak 5: Postavi jednolitnu boju pozadine ispune

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

Za potpuno uklanjanje ispune, 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čive; pozivanje jednog nadjačava drugo u istoj ćeliji.


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

Možete lančati bilo koji broj svojstava stila na istu referencu ćelije. Nema ograničenja koliko stilskih atributa se postavi prije spremanja.

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 stvara bijelu, podebljanu, 16pt Arial oznaku na tamnoplavoj pozadini, uobičajeni uzorak za zaglavlja stupaca.


Korak 7: Koristi konstruktor Font za ponovo upotrebljive stilove

Klasa Font klasa može biti instancirana sa svim svojim svojstvima u jednom pozivu, a zatim dodijeljena više ćelija. Ovo je korisno kada želite dosljedan kućni stil primijenjen na mnoge ćelije bez ponavljanja istih dodjela 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.")

Zadane vrijednosti konstruktora Font (svi parametri su opcionalni):

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

Potpuni radni primjer

Sljedeći samostalni skript stvara radnu knjigu s oblikovanim redom zaglavlja, obojenim redovima podataka i sažetkom ćelije koja demonstrira svaki stil API opisan gore:

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štenje #RRGGBB umjesto AARRGGBB

Početni # (npr. "#FF0000") ili 6‑znamenkasti RGB niz neće proizvesti očekivanu boju. Svojstvo očekuje točno 8 hex digits with no prefix: "FFFF0000". Prva dva znamenka su alfa kanal; upotrijebite FF za potpuno neprozirno.

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 ovdje. Zamijenite bilo koji is_bold referencu s bold.

Promjene stila nisu vidljive nakon spremanja

Provjerite da postavite svojstva stila na objekt ćelije prije pozivanja workbook.save(). Postavljanje svojstva na ćeliju nakon poziva save nema učinka na već zapisanu datoteku. Ako ponovno upotrijebite a cell varijablu, provjerite da i dalje upućuje na ispravnu adresu ćelije.

Ispuna i font u istoj ćeliji vizualno se sukobljavaju

Ne postoji sukob API-ja; uvijek možete postaviti oba cell.style.font.color i cell.style.fill.set_solid_fill() neovisno. Provjerite da boja teksta ima dovoljno kontrasta u odnosu na boju pozadine. Bijeli tekst (FFFFFFFF) na tamnoj pozadini poput tamnoplave (FF1E64C8) je pouzdana kombinacija.


Često postavljana pitanja

Kako ukloniti pozadinsku ispunu i vratiti ćeliju u stanje bez ispune?

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

Kako vratiti ćeliju na zadani font (Calibri 11pt crna)?

Izričito ponovno dodijelite zadane vrijednosti:

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 zadane postavke) i dodijelite je: cell.style.font = Font().

Mogu li primijeniti isti stil fonta na raspon ćelija u petlji?

Da. Prođite kroz adrese ćelija i postavite ista svojstva na svaku. Ako koristite Font konstruktor za stvaranje zajedničkog Font objekt, dodijelite ga svakoj ćeliji pomoću ws.cells[addr].style.font = my_font.

Utječe li stiliziranje na vrijednosti ćelija ili formule?

Ne. Stiliziranje je isključivo vizualni metapodaci. cell.style.font i cell.style.fill ne dirajte .value ili .formula.

Koji formati spremanja očuvaju stilove?

Stilovi se u potpunosti očuvaju prilikom spremanja u SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, i SaveFormat.MARKDOWN formati su plain‑text ili structured‑text formati i ne sadrže informacije o stiliziranju.


Povezani resursi:

 Hrvatski