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?
- Nije potreban Excel: Formatiranje se izvršava u potpunosti u Python na bilo kojem OS-u.
- Dosledan model boja: Jedan 8‑cifreni AARRGGBB string pokriva boju fonta i boju popunjavanja istim formatom.
- Čitljiva imena svojstava:
bold,italic,underline,strikethrough: neis_prefiks za pamćenje. - Ponovo upotrebljivi Font objekti: Kreirajte
Fontinstancu 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-fossNisu potrebni dodatni sistemski paketi. Uvezite klase koje su vam potrebne iz aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatKorak 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:
| Boja | AARRGGBB string | Napomene |
|---|---|---|
| Crna | FF000000 | Podrazumevana boja fonta |
| Bela | FFFFFFFF | Koristiti na tamnim pozadinama |
| Crvena | FFFF0000 | Upozorenje ili isticanje teksta |
| Plava | FF0000FF | Linkovi ili naglašavanje |
| Zelena | FF00FF00 | Pozitivne vrednosti ili uspeh |
| Narandžasta | FFFF8000 | Tekst upozorenja |
| Siva | FF808080 | Utišani ili onemogućeni tekst |
| Mornarska plava | FF1E64C8 | Korporativna / 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):
| Parametar | Podrazumevano |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
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 = FalseAlternativno, 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:
- Aspose.Cells FOSS for Python: Developer Guide
- Operacije proračunskih tablica
- Kako učitati proračunske tablice u Python
- Kako kreirati grafikone u Python
- API referenca: Font, Fill, Style
- Pregled proizvoda: Pregled funkcija i mogućnosti
- Blog: Predstavljanje Aspose.Cells FOSS: Pregled biblioteke i brzi početak