How to Style Cells with Aspose.Cells FOSS in Python

How to Style Cells with Aspose.Cells FOSS in Python

Aspose.Cells FOSS for Python lehetővé teszi, hogy betűstílusokat és háttérkitöltéseket alkalmazzon az egyes cellákra a cell.style.font és cell.style.fill API-k. A színek kifejezése 8-digit AARRGGBB hex strings; például "FFFF0000" az átlátszatlan pirosra, előtag nélkül # előtag. Minden stílus tisztán Python-ban készül, Microsoft Excel vagy bármely külső renderelő könyvtár függősége nélkül.

Why Style Cells with Aspose.Cells FOSS?

  1. Excel nem szükséges: A formázás teljesen Python-ban fut bármely operációs rendszeren.
  2. Következetes színmodell: Egyetlen 8 számjegyű AARRGGBB karakterlánc lefedi a betűszínt és a kitöltőszínt ugyanazzal a formátummal.
  3. Olvasható tulajdonnevek: bold, italic, underline, strikethrough: nincs is_ előtag, amit meg kell jegyezni.
  4. Újrahasználható betűtípus objektumok: Hozzon létre egy Font példányt egyszer, és alkalmazza sok cellára a következetes márkajelzés érdekében.

Lépésről-lépésre útmutató

1. lépés: Telepítse a Aspose.Cells FOSS-t a Python számára

pip install aspose-cells-foss

Nem szükséges további rendszercsomag. Importáld a szükséges osztályokat a aspose.cells_foss:

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

Step 2: Set Font Name and Size

Érj el egy cellát a ws.cells["address"] és írj a cell.style.font.name és 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")

Az alapértelmezett betűtípus Calibri, 11 pt. Bármely betűtípus neve, amely elérhető azon a rendszeren, ahol a fájlt megnyitják, használható; ha egy nem telepített betűtípust adunk meg, az nem okoz hibát, de a fájl megnyitásakor helyettesítő betűtípussal jelenhet meg.


Step 3: Set Font Color Using an AARRGGBB Hex String

A betűszínek beállítása egy 8-digit hexadecimal string rendszerben AARRGGBB sorrendben (Alpha, Red, Green, Blue). Ne ne tartalmazzon egy # előtagot.

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

Common AARRGGBB color reference:

SzínAARRGGBB karakterláncMegjegyzések
FeketeFF000000Alapértelmezett betűszín
FehérFFFFFFFFHasználja sötét háttéren
PirosFFFF0000Riasztás vagy kiemelt szöveg
KékFF0000FFLinkek vagy hangsúly
ZöldFF00FF00Pozitív értékek vagy siker
NarancsFFFF8000Figyelmeztető szöveg
SzürkeFF808080Visszafogott vagy letiltott szöveg
TengerészkékFF1E64C8Vállalati / márka kék

Az első két hexadecimális számjegy az alfa csatorna. Használja FF a teljesen átlátszatlanhoz. Az alatti értékek FF félig átlátszó eredményeket adnak azokban a renderelőkben, amelyek támogatják az alfa keverést.


4. lépés: Félkövér, dőlt, aláhúzott és áthúzott alkalmazása

Állítsa be minden attribútumot közvetlenül logikai értékként. A tulajdonságnevek bold, italic, underline, és strikethrough; tegye ne használja is_bold vagy is_italic (ezek a nevek nem léteznek a FOSS API-ban, és hibát okoznak 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")

Az összes négy jelző alapértelmezés szerint False. Szabadon kombinálhatók ugyanazon cellán.


5. lépés: Szilárd háttérkitöltő szín beállítása

Használja cell.style.fill.set_solid_fill("AARRGGBB") háttérkitöltés alkalmazásához. A színformátum ugyanaz a 8 számjegyű AARRGGBB hexadecimális karakterlánc, mint a betűszín esetén.

A kitöltés teljes eltávolításához hívja meg 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() és set_no_fill() kölcsönösen kizárják egymást; az egyik meghívása felülírja a másikat ugyanazon a cellán.


6. lépés: Több stílus kombinálása egy cellán

Bármennyi stílus tulajdonságot láncolhatsz ugyanazon a cellahivatkozáson. Nincs korlátozás arra, hogy hány stílus attribútumot állítasz be mentés előtt.

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

Ez egy fehér, félkövér, 16pt Arial címkét hoz létre egy tengerkék háttéren, ami gyakori minta az oszlopfejlécekhez.


7. lépés: A Font konstruktor használata újrahasználható stílusokhoz

A Font osztály egyetlen hívással példányosítható az összes tulajdonságával, majd több cellához is hozzárendelhető. Ez akkor hasznos, ha egységes házi stílust szeretne alkalmazni sok cellán anélkül, hogy ugyanazokat a tulajdonságbeállításokat ismételné.

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

Betűtípus-építő alapértelmezett értékek (az összes paraméter opcionális):

ParaméterAlapértelmezett
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

Teljes működő példa

Az alábbi önálló szkript egy munkafüzetet hoz létre, amely stílusos fejlécsort, színezett adat sorokat és egy összegző cellát tartalmaz, bemutatva a fent lefedett összes stílus API-t:

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

Gyakori problémák

Hibás színformátum: a(z) #RRGGBB helyett AARRGGBB

Egy kezdő # (például. "#FF0000") vagy egy 6 számjegyű RGB karakterlánc nem fogja előállítani a várt színt. A tulajdonság pontosan ezt várja 8 hex digits with no prefix: "FFFF0000". Az első két számjegy az alfa csatorna; használja FF a teljesen átlátszatlanhoz.

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

A FOSS API használ bold, italic, underline, és strikethrough mint a tulajdonságneveket. A is_bold / is_italic a névadási konvenció egy másik könyvtárhoz tartozik, és itt nem létezik. Cserélje ki a is_bold referenciát a bold.

A stílusváltozások nem láthatók a mentés után

Győződjön meg róla, hogy a cellaobjektumra állítja be a stílus tulajdonságokat előtt hívás workbook.save(). A cellára vonatkozó tulajdonság beállítása a mentés hívása után nem befolyásolja a már írt fájlt. Ha újrahasznál egy cell változót, ellenőrizze, hogy még mindig a megfelelő cellacímre mutat-e.

A kitöltés és a betűtípus ugyanazon a cellán vizuálisan ütköznek

Nincs API-ütközés; mindig beállíthatja mindkettőt cell.style.font.color és cell.style.fill.set_solid_fill() függetlenül. Győződjön meg róla, hogy a szövegszín elegendő kontrasztot biztosít a háttérszínnel. Fehér szöveg (FFFFFFFF) egy sötét kitöltésen, például tengerészkék (FF1E64C8) megbízható kombináció.


Gyakran Ismételt Kérdések

Hogyan távolíthatom el a háttérkitöltést, és állíthatom vissza a cellát kitöltés nélküli állapotba?

Hívja cell.style.fill.set_no_fill(). Ez eltávolítja a celláról a korábban beállított szilárd kitöltést.

Hogyan állíthatom vissza a cellát az alapértelmezett betűtípusra (Calibri 11pt fekete)?

Explicit módon rendelje újra az alapértelmezett értékeket:

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ívaként hozzon létre egy Font() példány argumentumok nélkül (minden alapértelmezett) és rendeld hozzá: cell.style.font = Font().

Alkalmazhatom ugyanazt a betűstílust egy cellatartományra egy ciklusban?

Igen. Iterálj a cellacímeken, és állítsd be ugyanazokat a tulajdonságokat mindegyiken. Ha a Font konstruktorral egy megosztott Font objektumot, rendeld hozzá minden cellához a ws.cells[addr].style.font = my_font.

A stílus befolyásolja a cella értékeit vagy képleteit?

Nem. A stílusolvasztás kizárólag vizuális metaadat. cell.style.font és cell.style.fill nem érintik .value vagy .formula.

Mely mentési formátumok őrzik meg a stílusokat?

A stílusok teljes mértékben megmaradnak, amikor mentésre kerül a SaveFormat.XLSX. A SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, és SaveFormat.MARKDOWN formátumok egyszerű szöveges vagy strukturált szöveges formátumok, és nem tartalmaznak stílusinformációt.


Kapcsolódó források:

 Magyar