Ako štýlovať bunky pomocou Aspose.Cells FOSS v Python
Aspose.Cells FOSS for Python umožňuje vám aplikovať štýly písma a výplne pozadia na jednotlivé bunky pomocou cell.style.font a cell.style.fill API. Farby sa vyjadrujú ako 8-digit AARRGGBB hex strings; napríklad "FFFF0000" pre nepriehľadnú červenú, bez # prefixu. Všetko štýlovanie je vykonané v čistom Python bez závislosti na Microsoft Excel alebo akejkoľvek externé renderovacej knižnici.
Prečo štýlovať bunky pomocou Aspose.Cells FOSS?
- Excel nie je potrebný: Formátovanie beží výlučne v Python na akomkoľvek OS.
- Konzistentný farebný model: Jediný 8‑ciferný reťazec AARRGGBB pokrýva farbu písma aj farbu výplne rovnakým formátom.
- Čitateľné názvy vlastností:
bold,italic,underline,strikethrough: nieis_prefix na zapamätanie. - Znovupoužiteľné objekty Font: Vytvorte
Fontinštanciu raz a použite ju na mnoho buniek pre konzistentné značkovanie.
Postupný návod
Krok 1: Nainštalujte Aspose.Cells FOSS pre Python
pip install aspose-cells-fossNie sú potrebné žiadne ďalšie systémové balíky. Importujte triedy, ktoré potrebujete z aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatKrok 2: Nastavte názov písma a veľkosť
Prístup k bunke cez ws.cells["address"] a zapíšte do cell.style.font.name a 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")Predvolený font je Calibri pri 11pt. Akýkoľvek názov písma dostupný v systéme, kde bude súbor otvorený, môže byť použitý; špecifikovanie písma, ktoré nie je nainštalované, nespôsobí chybu, ale pri otvorení súboru sa môže vykresliť s náhradným písmom.
Krok 3: Nastavte farbu písma pomocou hexadecimálneho reťazca AARRGGBB
Farby písma sa nastavujú pomocou 8-digit hexadecimal string v AARRGGBB poradí (Alpha, Red, Green, Blue). Do nie zahrnúť # predponu.
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")Bežná referencia farby AARRGGBB:
| Farba | reťazec AARRGGBB | Poznámky |
|---|---|---|
| Čierna | FF000000 | Predvolená farba písma |
| Biela | FFFFFFFF | Použiť na tmavých pozadiach |
| Červená | FFFF0000 | Upozorniť alebo zvýrazniť text |
| Modrá | FF0000FF | Odkazy alebo zvýraznenie |
| Zelená | FF00FF00 | Pozitívne hodnoty alebo úspech |
| Oranžová | FFFF8000 | Varovný text |
| Šedá | FF808080 | Tlmený alebo deaktivovaný text |
| Námornícka modrá | FF1E64C8 | Firemná / značková modrá |
Prvé dva hexadecimálne číslice predstavujú alfa kanál. Použite FF pre úplne nepriehľadné. Hodnoty pod FF produkujú polopriehľadné výsledky v rendereroch, ktoré podporujú alfa miešanie.
Krok 4: Použiť tučné, kurzívu, podčiarknutie a prečiarknutie
Nastavte každý atribút priamo ako boolean. Názvy vlastností sú bold, italic, underline, a strikethrough; robte nie používajte is_bold alebo is_italic (tieto mená neexistujú v rozhraní FOSS API a vyvolajú 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")Všetky štyri príznaky predvolene nastavené na False. Môžu sa voľne kombinovať v rovnakej bunke.
Krok 5: Nastaviť plnú farbu pozadia
Použiť cell.style.fill.set_solid_fill("AARRGGBB") na použitie výplne pozadia. Formát farby je rovnaký 8‑ciferný hexadecimálny reťazec AARRGGBB ako farba písma.
Ak chcete úplne odstrániť výplň, zavolajte 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() a set_no_fill() sú navzájom výlučné; volanie jedného prepíše druhé v rovnakej bunke.
Krok 6: Kombinovať viacero štýlov v jednej bunke
Môžete reťazcovať ľubovoľný počet štýlových vlastností na rovnaký odkaz na bunku. Neexistuje žiadny limit, koľko štýlových atribútov môžete nastaviť pred uložením.
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.")Týmto vznikne biela, tučná, 16‑bodová Arial značka na námorníckom pozadí, bežný vzor pre hlavičky stĺpcov.
Krok 7: Použiť konštruktor Font pre opakovane použiteľné štýly
Trieda Font class can be instantiated with all its properties in one call, then assigned to multiple cells. This is useful when you want a consistent house style applied across many cells without repeating the same property assignments.
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.")Predvolené hodnoty konštruktora Font (všetky parametre sú voliteľné):
| Parameter | Predvolená hodnota |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Kompletný funkčný príklad
Nasledujúci samostatný skript vytvorí zošit so štýlovaným hlavičkovým riadkom, farebnými dátovými riadkami a sumárnou bunkou, ktorá demonštruje každé API štýlovania uvedené vyššie:
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.")Bežné problémy
Nesprávny formát farby: použitie #RRGGBB namiesto AARRGGBB
Úvodná # (napr. "#FF0000") alebo 6‑ciferný RGB reťazec nevytvorí očakávanú farbu. Vlastnosť očakáva presne 8 hex digits with no prefix: "FFFF0000". Prvé dve číslice predstavujú alfa kanál; použite FF pre úplne nepriehľadné.
AttributeError: 'Font' object has no attribute 'is_bold'
FOSS API používa bold, italic, underline, a strikethrough ako názvy vlastností. The is_bold / is_italic naming convention patrí do inej knižnice a neexistuje tu. Nahraďte akúkoľvek is_bold referenciu s bold.
Zmeny štýlu nie sú viditeľné po uložení
Uistite sa, že nastavíte vlastnosti štýlu na objekt bunky pred volaním workbook.save(). Nastavenie vlastnosti na bunku po volaní save nemá žiadny vplyv na už zapísaný súbor. Ak znovu použijete cell premennú, potvrďte, že stále odkazuje na správnu adresu bunky.
Výplň a písmo v rovnakej bunke vizuálne konfliktujú
Neexistuje žiadny konflikt API; vždy môžete nastaviť oba cell.style.font.color a cell.style.fill.set_solid_fill() nezávisle. Uistite sa, že farba textu má dostatočný kontrast voči farbe pozadia. Biela farba textu (FFFFFFFF) na tmavom výplni, ako je námornícka (FF1E64C8) je spoľahlivá kombinácia.
Často kladené otázky
Ako odstrániť výplň pozadia a vrátiť bunku do stavu bez výplne?
Zavolajte cell.style.fill.set_no_fill(). Toto odstráni akúkoľvek predtým nastavenú plnú výplň z bunky.
Ako resetovať bunku na predvolené písmo (Calibri 11pt čierne)?
Explicitne priraďte predvolené hodnoty:
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 = FalseAlternatívne vytvorte a Font() inštanciu bez argumentov (všetky predvolené) a priradiť ju: cell.style.font = Font().
Môžem použiť rovnaký štýl písma na rozsah buniek v cykle?
Áno. Prejdite adresy buniek a nastavte rovnaké vlastnosti pre každú. Ak použijete the Font konštruktor na vytvorenie zdieľaného Font objekt, priraďte ho každej bunke pomocou ws.cells[addr].style.font = my_font.
Ovplyvňuje štýlovanie hodnoty buniek alebo vzorce?
Nie. Štýlovanie je čisto vizuálne metadáta. cell.style.font a cell.style.fill nedotýkajte sa .value alebo .formula.
Ktoré formáty ukladania zachovávajú štýly?
Štýly sú plne zachované pri ukladaní do SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, a SaveFormat.MARKDOWN formáty sú formáty obyčajného textu alebo štruktúrovaného textu a neobsahujú informácie o štýloch.
Súvisiace zdroje:
- Aspose.Cells FOSS for Python: Developer Guide
- Operácie s tabuľkami
- Ako načítať tabuľky v Python
- Ako vytvoriť grafy v Python
- Referenčná dokumentácia API: Font, Fill, Style
- Prehľad produktu: Zhrnutie funkcií a možností
- Blog: Predstavenie Aspose.Cells FOSS: Prehľad knižnice a rýchly štart