Jak stylovat buňky pomocí Aspose.Cells FOSS v Python
Aspose.Cells FOSS for Python umožňuje vám použít styly písma a výplně pozadí na jednotlivé buňky pomocí cell.style.font a cell.style.fill API. Barvy jsou vyjádřeny jako 8-digit AARRGGBB hex strings; například "FFFF0000" pro neprůhlednou červenou, bez # předpony. Veškeré stylování je prováděno v čistém Python bez závislosti na Microsoft Excel nebo jakékoli externí knihovně pro vykreslování.
Proč stylovat buňky pomocí Aspose.Cells FOSS?
- Excel není vyžadován: Formátování běží zcela v Python na jakémkoli OS.
- Konzistentní model barev: Jediný 8‑ciferný řetězec AARRGGBB pokrývá barvu písma i barvu výplně ve stejném formátu.
- Čitelné názvy vlastností:
bold,italic,underline,strikethrough: neis_předpona k zapamatování. - Znovupoužitelné objekty Font: Vytvořte
Fontinstanci jednou a použijte ji na mnoho buněk pro konzistentní značkování.
Průvodce krok za krokem
Krok 1: Nainstalujte Aspose.Cells FOSS pro Python
pip install aspose-cells-fossNejsou vyžadovány žádné další systémové balíčky. Importujte třídy, které potřebujete, z aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatKrok 2: Nastavte název písma a velikost
Přistupte k buňce přes ws.cells["address"] a zapisujte 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")Výchozí písmo je Calibri o velikosti 11pt. Jakýkoli název písma dostupný v systému, kde bude soubor otevřen, lze použít; zadání písma, které není nainstalováno, nezpůsobí chybu, ale při otevření souboru se může vykreslit s náhradním písmem.
Krok 3: Nastavte barvu písma pomocí hexadecimálního řetězce AARRGGBB
Barvy písma se nastavují pomocí 8-digit hexadecimal string v AARRGGBB pořadí (Alpha, Red, Green, Blue). Ne ne zahrnout # předponu.
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")Běžná referenční tabulka barev AARRGGBB:
| Barva | řetězec AARRGGBB | Poznámky |
|---|---|---|
| Černá | FF000000 | Výchozí barva písma |
| Bílá | FFFFFFFF | Použít na tmavých pozadích |
| Červená | FFFF0000 | Upozornění nebo zvýrazněný text |
| Modrá | FF0000FF | Odkazy nebo důraz |
| Zelená | FF00FF00 | Pozitivní hodnoty nebo úspěch |
| Oranžová | FFFF8000 | Varovný text |
| Šedá | FF808080 | Utlumený nebo deaktivovaný text |
| Námořnická | FF1E64C8 | Firemní / značková modrá |
První dva hexadecimální znaky představují alfa kanál. Použijte FF pro plně neprůhledné. Hodnoty pod FF produkují poloprůhledné výsledky v rendererech, které podporují alfa blending.
Krok 4: Použít tučné, kurzívu, podtržení a přeškrtnutí
Nastavte každý atribut přímo jako boolean. Názvy vlastností jsou bold, italic, underline, a strikethrough; udělejte ne používejte is_bold nebo is_italic (tato jména 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šechny čtyři příznaky mají výchozí hodnotu False. Lze je volně kombinovat ve stejné buňce.
Krok 5: Nastavit plnou barvu výplně pozadí
Použijte cell.style.fill.set_solid_fill("AARRGGBB") k aplikaci výplně pozadí. Formát barvy je stejný 8‑ciferný hexadecimální řetězec AARRGGBB jako barva písma.
Pro úplné odstranění výplně 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 navzájem výlučné; volání jednoho přepíše druhé ve stejné buňce.
Krok 6: Kombinovat více stylů v jedné buňce
Můžete řetězit libovolný počet stylových vlastností na stejném odkazu na buňku. Neexistuje žádný limit, kolik stylových atributů můžete nastavit 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.")Tím vznikne bílý, tučný, 16pt Arial štítek na námořnickém pozadí, což je běžný vzor pro záhlaví sloupců.
Krok 7: Použít konstruktor Font pro opakovaně použitelné styly
Třída Font třída může být vytvořena se všemi svými vlastnostmi v jednom volání a poté přiřazena k více buňkám. To je užitečné, když chcete použít konzistentní firemní styl napříč mnoha buňkami, aniž byste opakovali stejné přiřazení vlastností.
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.")Výchozí hodnoty konstruktoru Font (všechny parametry jsou volitelné):
| Parametr | Výchozí |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Kompletní funkční příklad
Následující samostatný skript vytvoří sešit se stylovaným řádkem záhlaví, barevnými řádky dat a souhrnnou buňkou, která demonstruje všechny výše popsané API pro stylování:
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.")Časté problémy
Špatný formát barvy: použití #RRGGBB namísto AARRGGBB
Úvodní # (např. "#FF0000") nebo 6‑ciferný řetězec RGB nevytvoří očekávanou barvu. Vlastnost očekává přesně 8 hex digits with no prefix: "FFFF0000". První dvě číslice představují alfa kanál; použijte FF for plně neprůhledné.
AttributeError: 'Font' object has no attribute 'is_bold'
FOSS API používá bold, italic, underline, a strikethrough jako názvy vlastností. Tento is_bold / is_italic pojmenovací konvence patří do jiné knihovny a zde neexistuje. Nahraďte jakýkoli is_bold odkaz s bold.
Změny stylu nejsou po uložení viditelné
Ujistěte se, že nastavíte vlastnosti stylu na objekt buňky před voláním workbook.save(). Nastavení vlastnosti buňky po volání uložení nemá žádný vliv na již zapsaný soubor. Pokud znovu použijete cell proměnnou, potvrďte, že stále odkazuje na správnou adresu buňky.
Výplň a písmo ve stejné buňce vizuálně konfliktují
Neexistuje žádný konflikt API; můžete vždy nastavit oba cell.style.font.color a cell.style.fill.set_solid_fill() nezávisle. Ujistěte se, že barva textu má dostatečný kontrast vůči barvě pozadí. Bílý text (FFFFFFFF) na tmavém výplni, například námořnické (FF1E64C8).
Často kladené otázky
Jak odebrat výplň pozadí a vrátit buňku do stavu bez výplně?
Zavolejte cell.style.fill.set_no_fill(). Tím se odstraní jakákoli dříve nastavená plná výplň z buňky.
Jak resetovat buňku na výchozí písmo (Calibri 11 pt černé)?
Přiřaďte výchozí hodnoty explicitně:
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 = FalseAlternativně vytvořte Font() instanci bez argumentů (všechny výchozí hodnoty) a přiřaďte ji: cell.style.font = Font().
Mohu použít stejný styl písma na rozsah buněk ve smyčce?
Ano. Projděte adresy buněk a nastavte na každé stejné vlastnosti. Pokud použijete the Font konstruktor k vytvoření sdíleného Font objektu, přiřaďte jej každé buňce pomocí 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?
Styly jsou při ukládání do SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, a SaveFormat.MARKDOWN formáty jsou formáty prostého textu nebo strukturovaného textu a neobsahují informace o stylování.
Související zdroje:
- Aspose.Cells FOSS for Python: Developer Guide
- Operace s tabulkami
- Jak načíst tabulky v Python
- Jak vytvořit grafy v Python
- Reference API: Font, Fill, Style
- Přehled produktu: Přehled funkcí a schopností
- Blog: Představení Aspose.Cells FOSS: Přehled knihovny a rychlý start