Jak stylovat buňky s Aspose.Cells FOSS v Pythonu

Jak stylovat buňky s Aspose.Cells FOSS v Pythonu

Aspose.Cells FOSS for Python umožňuje aplikovat typy písma a vyplnění pozadí do jednotlivých buněk pomocí cell.style.font a) cell.style.fill Barvy jsou vyjádřeny jako: 8-digit AARRGGBB hex strings;, například: "FFFF0000" pro neprůhlednou červenou, bez: # Všechny stylování je provedeno v čistém Pythonu bez závislosti na Microsoft Excel nebo jakékoliv externí renderovací knihovně.

Proč vylepšovat buňky s Aspose.Cells FOSS?

  1. Nepotřebujete Excel: Formátování běží zcela v Pythonu na jakémkoli operačním systému.
  2. Konzistentní barevný model: Jediný osmiciferný řetěz AARRGGBB pokrývá barvu písma a barvy vyplnění stejným formátem.
  3. Čitelné názvy vlastností: bold, italic, underline, strikethrough: ne is_ Předepísek na paměť.
  4. Objekty s opětovným použitím písma:Vytvořit: Font Využijte tento příklad jednou a použijte ho na mnoho buněk pro konzistentní značku.

Krok za krokem

Krok 1: Nainstalujte Aspose.Cells FOSS pro Python

pip install aspose-cells-foss

Žádné další systémové balíčky nejsou nutné. Importovat třídy, které potřebujete z aspose.cells_foss:

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

Krok 2: Nastavit jméno a velikost písma

Přístup k buňce přes: ws.cells["address"] a napsat na: 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")

Předvolený font je: Kalibr na 11pts..Je možné použít jakékoliv jméno písma, které je k dispozici v systému, kde bude soubor otevřen; uvedení písmu, který není nainstalován, nezpůsobuje chybu, ale může při otevírání souboru vykreslit záložní písmo.


Krok 3: Nastavit barvu písma pomocí řetězce AARRGGBB Hex

Barvy písma jsou nastaveny s 8-digit hexadecimal string v . AARRGGBB Pořadí (Alfa, Červená, Zelená, Modrá). Ne, není. zahrnují: # Předepísek.

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

Společný referenční barvy AARRGGBB:

Barva:AARRGGBB řetězPoznámky
Černá.FF000000Předvolená barva písma
BíláFFFFFFFFPoužití na tmavém pozadí
Červená.FFFF0000Text varování nebo zvýraznění
Modrá.FF0000FFOdkazy nebo zdůrazňování
ZelenáFF00FF00Pozitivní hodnoty nebo úspěch
OranžováFFFF8000Varovný text
ŠedéFF808080Zkrácený nebo vyřazený text
NámořnictvoFF1E64C8Modrá značka / firemní modra

První dvě hexáziové číslice jsou alfa kanál. FF pro plně neprůhledné. FF V případě, že se použije systém pro přidávání a zpracování dat, musí být tato metoda použita.


Krok 4: Aplikujte v tučných, kurzivních a podtržených písmenech.

Každý atribut nastavit přímo jako boolean. Název vlastností jsou bold, italic, underline,a) strikethrough; provést Ne, není. použití: is_bold nebo: is_italic (těmito jmény neexistuje na FOSS API a bude vzbuzovat 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šechny čtyři vlajky jsou nastaveny na: False.Mohou být volně kombinovány ve stejné buňce.


Krok 5: Nastavte pevnou barvu doplňku pozadí

Použití: cell.style.fill.set_solid_fill("AARRGGBB") Barvový formát je stejný jako osmiciferný hexáziový řetěz AARRGGBB, který je barvou písma.

Abyste vymazali plnění, zavolejte: 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() jsou vzájemně vylučující; volání jednoho přesahuje druhé v téže buňce.


Krok 6: Spojit více stylů do jedné buňky

Můžete řetězít jakákoliv čísla vlastností stylu na stejném odkazu buňky. Není omezeno, kolik atributů styru je nastaveno před 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.")

To vytváří bílou, tučnou 16pt Arialovou štítku na námořním pozadí, běžný vzorec pro nadpisy sloupců.


Krok 7: Použijte konstruktor písma pro opakovaně použitelné styly

Úřad pro bezpečnost a ochranu zdraví Font třída může být instanciated se všemi svými vlastnostmi v jednom volání, a pak přiděleny do více buněk. To je užitečné, když chcete konzistentní styl domu aplikován přes mnoho buníků bez opakování stejných vlastností přiřazení.

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

Předvolené hodnoty konstruktoru písma (všechny parametry jsou volitelné):

Parametr:Předvoleně
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

Kompletní příklad

Následující samostatný skript vytváří pracovní knihu se stylovaným řádkem hlavičky, barevnými datovými řadami a souhrnnou buňkou demonstrující každou stylizovanou API uvedenou výše:

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

Obvyklé problémy

Nepravdivý barevný formát: použitím #RRGGBB místo: AARRGGBB

Hlavní roli. # (např. "#FF0000") nebo 6-ciferný řetěz RGB nevytvoří očekávanou barvu. Vlastnost očekává přesně 8 hex digits with no prefix: "FFFF0000".První dvě číslice jsou alfa kanál . FF pro plně neprůhledné.

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

FOSS API používá: bold, italic, underline,a) strikethrough jako jména nemovitostí. is_bold / is_italic Jmenování konvence patří do jiné knihovny a neexistuje zde. Naměňte jakékoli is_bold odkaz na: bold.

Změny stylu nejsou viditelné po uložení .

Ujistěte se , že jste nastavili vlastnosti stylu na objekty buněk . předchozí volání. workbook.save().Nastavení vlastností na buňku po volání uložení nemá žádný vliv na již napsaný soubor. Pokud znovu použijete cell Změnitel, potvrdím že stále odkazuje na správnou adresu buňky.

Vyzkoušejte vizuální konflikt vyplnění a písma ve stejné buňce.

Neexistuje žádný konflikt API; můžete vždy nastavit oba cell.style.font.color a) cell.style.fill.set_solid_fill() Zkontrolujte, zda má barva textu dostatečný kontrast s barvou pozadí. Bílý text (FFFFFFFF) na tmavé plnění, jako je navy (FF1E64C8) je spolehlivá kombinace.


Časté otázky

Jak odstraním zadání pozadí a vrátím buňku k žádné vyplnění?

Zavolej . cell.style.fill.set_no_fill().Tím se z buňky odstraňuje jakékoliv dříve nastavené pevné plnění.

Jak nastavit buňku na standardní písmo (Calibri 11pt černá)?

Přidělit výrazně nové standardní 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

Alternativně vytvořte Font() instance bez argumentů (všechny standardy) a přiřadit: cell.style.font = Font().

Mohu použít stejný styl písma na rozsah buněk v smyčce?

Ano, iterujte adresy a nastavujte pro každou stejné vlastnosti. Font konstruktor vytvořit sdílené Font objekt, přiřadit ho do každé buňky s ws.cells[addr].style.font = my_font.

Ovlivňuje stylování hodnoty buněk nebo vzorce?

Ne, stylování je čistě vizuální metadata. cell.style.font a) cell.style.fill nedotýkejte se. .value nebo: .formula.

Které formáty ukládání zachovávají styly?

Stylové prvky jsou plně zachovány při ukládání do SaveFormat.XLSX.- To je ono . SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON,a) SaveFormat.MARKDOWN formáty jsou formáty prostého textu nebo strukturovaného texdu a neobsahují informace o stylu.


Související zdroje:

 Čeština