Kā stilizēt šūnas ar Aspose.Cells FOSS Python

Kā stilizēt šūnas ar Aspose.Cells FOSS Python

Aspose.Cells FOSS for Python ļauj jums piemērot fonta stilus un fona aizpildījumus atsevišķām šūnām, izmantojot cell.style.font un cell.style.fill API. Krāsas tiek izteiktas kā 8-digit AARRGGBB hex strings; piemēram "FFFF0000" necaurspīdīgam sarkanam, bez # prefiksa. Visa stilizēšana tiek veikta tīrā Python bez atkarības no Microsoft Excel vai jebkuras ārējās renderēšanas bibliotēkas.

Kāpēc stilizēt šūnas ar Aspose.Cells FOSS?

  1. Nav vajadzīgs Excel: Formatēšana notiek pilnīgi Python jebkurā OS.
  2. Konsekvents krāsu modelis: Viena 8‑ciparu AARRGGBB virkne aptver fonta krāsu un aizpildījuma krāsu vienā un tajā pašā formātā.
  3. Lasāmi īpašību nosaukumi: bold, italic, underline, strikethrough: nav is_ prefiksa, ko atcerēties.
  4. Atkārtoti lietojami Font objekti: Izveidojiet Font instanci vienreiz un piemērojiet to daudzām šūnām, lai nodrošinātu konsekventu zīmola izskatu.

Solī pa solim rokasgrāmata

Solis 1: Instalējiet Aspose.Cells FOSS priekš Python

pip install aspose-cells-foss

Nav vajadzīgi papildu sistēmas pakotnes. Importējiet vajadzīgās klases no aspose.cells_foss:

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

2. solis: Iestatiet fonta nosaukumu un lielumu

Piekļūstiet šūnai caur ws.cells["address"] un rakstiet uz cell.style.font.name un 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")

Noklusējuma fonts ir Calibri, 11pt. Jebkurš fonta nosaukums, kas pieejams sistēmā, kurā fails tiks atvērts, var tikt izmantots; fonta norādīšana, kas nav instalēta, nerada kļūdu, bet var tikt attēlota ar rezerves fontu, kad fails tiek atvērts.


3. solis: Iestatiet fonta krāsu, izmantojot AARRGGBB heksadecimālo virkni

Fonta krāsas tiek iestatītas ar 8-digit hexadecimal string secībā AARRGGBB secība (Alpha, Red, Green, Blue). Dariet ne iekļaut # prefiksu.

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

Bieži izmantotā AARRGGBB krāsu atsauce:

KrāsaAARRGGBB virknePiezīmes
MelnsFF000000Noklusējuma fonta krāsa
BaltsFFFFFFFFIzmantot tumšos fonos
SarkansFFFF0000Brīdinājuma vai izcēluma teksts
ZilsFF0000FFSaites vai uzsvērums
ZaļšFF00FF00Pozitīvas vērtības vai panākumi
OranžsFFFF8000Brīdinājuma teksts
PelēksFF808080Nomācis vai atspējots teksts
JūraszilsFF1E64C8Korporatīvā / zīmola zila

Pirmie divi heksadecimālie cipari ir alfa kanāls. Izmantojiet FF pilnīgi necaurspīdīgam. Vērtības zem FF radīs daļēji caurspīdīgus rezultātus renderētājos, kas atbalsta alfa sajaukšanu.


4. solis: Pielietot treknrakstu, slīprakstu, pasvītrojumu un pārsvītrojumu

Iestatiet katru atribūtu tieši kā boolean. Īpašību nosaukumi ir bold, italic, underline, un strikethrough; dariet ne izmantot is_bold vai is_italic (šie nosaukumi neeksistē FOSS API un radīs 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")

Visi četri karogi pēc noklusējuma ir False. Tos var brīvi kombinēt tajā pašā šūnā.


5. solis: Iestatīt vienkrāsainu fona aizpildījuma krāsu

Izmantot cell.style.fill.set_solid_fill("AARRGGBB") lai piemērotu fona aizpildījumu. Krāsas formāts ir tas pats 8‑ciparu AARRGGBB heksadecimālais virkne kā fonta krāsai.

Lai pilnībā noņemtu aizpildījumu, izsauciet 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() un set_no_fill() ir savstarpēji izslēdzoši; viena izsaukšana pārraksta otru tajā pašā šūnā.


6. solis: Apvienot vairākus stilus vienā šūnā

Jūs varat ķēdēt jebkuru skaitu stila īpašību uz tās pašas šūnas atsauces. Nav ierobežojuma, cik daudz stila atribūtu var iestatīt pirms saglabāšanas.

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

Tas izveido balto, treknrakstā, 16pt Arial etiķeti uz tumši zila fona – bieži sastopamu modeli kolonnu galveņu.


7. solis: Izmantot Font konstruktoru atkārtoti lietojamiem stiliem

Šī Font class var tikt instancēta ar visām tās īpašībām vienā izsaukumā, pēc tam piešķirta vairākiem šūnām. Tas ir noderīgi, ja vēlaties konsekventu mājas stilu, kas tiek piemērots daudzām šūnām, nepārkārtojot vienas un tās pašas īpašību piešķiršanas.

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

Font konstruktoru noklusējuma vērtības (visi parametri ir izvēles):

ParametrsNoklusējums
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

Pilns darbosjošs piemērs

Tālāk esošais pašpietiekamais skripts izveido darblapu ar stilizētu galvenes rindu, krāsotām datu rindām un kopsavilkuma šūnu, kas demonstrē katru iepriekš aprakstīto stila API:

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

Common Issues

Nekorekta krāsas formāts: tiek izmantots #RRGGBB nevis AARRGGBB

Vadošs # (piemēram. "#FF0000") vai 6‑ciparu RGB virkne nesniegs gaidīto krāsu. Īpašība sagaida tieši 8 hex digits with no prefix: "FFFF0000". FF pilnīgi necaurspīdīgam.

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

FOSS API izmanto bold, italic, underline, un strikethrough kā īpašību nosaukumi. Šis is_bold / is_italic nosaukšanas konvencija pieder citai bibliotēkai un šeit nepastāv. Aizstājiet jebkuru is_bold atsauci ar bold.

Stila izmaiņas nav redzamas pēc saglabāšanas

Pārliecinieties, ka iestatāt stila īpašības šūnas objektā pirms izsaucot workbook.save(). Īpašības iestatīšana šūnā pēc saglabāšanas izsaukuma neietekmē jau ierakstīto failu. Ja jūs atkārtoti izmantojat cell mainīgo, pārliecinieties, ka tas joprojām norāda uz pareizo šūnas adresi.

Aizpildījums un fonts vienā šūnā vizuāli konfliktē

Nav API konflikta; jūs vienmēr varat iestatīt abus cell.style.font.color un cell.style.fill.set_solid_fill() neatkarīgi. Pārliecinieties, ka teksta krāsai ir pietiekams kontrasts pret fona krāsu. Balts teksts (FFFFFFFF) uz tumša aizpildījuma, piemēram, tumši zila (FF1E64C8) ir uzticama kombinācija.


Biežāk uzdotie jautājumi

Kā noņemt fona aizpildījumu un atgriezt šūnu bez aizpildījuma?

Izsauciet cell.style.fill.set_no_fill(). Tas noņem jebkuru iepriekš iestatītu viendabīgu aizpildījumu no šūnas.

Kā atiestatīt šūnu uz noklusējuma fontu (Calibri 11pt melns)?

Pārpiešķiriet noklusējuma vērtības eksplicitiski:

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īvi, izveidojiet a Font() instanci bez argumentiem (visi noklusējumi) un piešķir to: cell.style.font = Font().

Vai varu piemērot vienu fonta stilu šūnu diapazonam ciklā?

Jā. Pāri ejiet cauri šūnu adresēm un iestatiet katrai tās pašas īpašības. Ja jūs izmantojat the Font konstruktora, lai izveidotu koplietotu Font objektu, piešķiriet to katrai šūnai ar ws.cells[addr].style.font = my_font.

Vai stils ietekmē šūnas vērtības vai formulas?

Nē. Stilizēšana ir tikai vizuāla metadatu informācija. cell.style.font un cell.style.fill nepieskarieties .value vai .formula.

Kuri saglabāšanas formāti saglabā stilus?

Stili tiek pilnībā saglabāti, saglabājot uz SaveFormat.XLSX. Šis SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, un SaveFormat.MARKDOWN formāti ir vienkārša teksta vai strukturēta teksta formāti un nesatur stilizācijas informāciju.


Saistītie resursi:

 Latviešu