Ako štýlovať bunky pomocou Aspose.Cells FOSS v Python

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?

  1. Excel nie je potrebný: Formátovanie beží výlučne v Python na akomkoľvek OS.
  2. Konzistentný farebný model: Jediný 8‑ciferný reťazec AARRGGBB pokrýva farbu písma aj farbu výplne rovnakým formátom.
  3. Čitateľné názvy vlastností: bold, italic, underline, strikethrough: nie is_ prefix na zapamätanie.
  4. Znovupoužiteľné objekty Font: Vytvorte Font inš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-foss

Nie 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, SaveFormat

Krok 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:

Farbareťazec AARRGGBBPoznámky
ČiernaFF000000Predvolená farba písma
BielaFFFFFFFFPoužiť na tmavých pozadiach
ČervenáFFFF0000Upozorniť alebo zvýrazniť text
ModráFF0000FFOdkazy alebo zvýraznenie
ZelenáFF00FF00Pozitívne hodnoty alebo úspech
OranžováFFFF8000Varovný text
ŠedáFF808080Tlmený alebo deaktivovaný text
Námornícka modráFF1E64C8Firemná / 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é):

ParameterPredvolená hodnota
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

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

Alternatí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:

 Slovenčina