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?
- Nav vajadzīgs Excel: Formatēšana notiek pilnīgi Python jebkurā OS.
- Konsekvents krāsu modelis: Viena 8‑ciparu AARRGGBB virkne aptver fonta krāsu un aizpildījuma krāsu vienā un tajā pašā formātā.
- Lasāmi īpašību nosaukumi:
bold,italic,underline,strikethrough: navis_prefiksa, ko atcerēties. - Atkārtoti lietojami Font objekti: Izveidojiet
Fontinstanci 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-fossNav vajadzīgi papildu sistēmas pakotnes. Importējiet vajadzīgās klases no aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormat2. 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āsa | AARRGGBB virkne | Piezīmes |
|---|---|---|
| Melns | FF000000 | Noklusējuma fonta krāsa |
| Balts | FFFFFFFF | Izmantot tumšos fonos |
| Sarkans | FFFF0000 | Brīdinājuma vai izcēluma teksts |
| Zils | FF0000FF | Saites vai uzsvērums |
| Zaļš | FF00FF00 | Pozitīvas vērtības vai panākumi |
| Oranžs | FFFF8000 | Brīdinājuma teksts |
| Pelēks | FF808080 | Nomācis vai atspējots teksts |
| Jūraszils | FF1E64C8 | Korporatī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):
| Parametrs | Noklusējums |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
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 = FalseAlternatī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:
- Aspose.Cells FOSS for Python: Developer Guide
- Tabullapas operācijas
- Kā ielādēt tabullapas programmā Python
- Kā izveidot diagrammas programmā Python
- API atsauce: Font, Fill, Style
- Produkta pārskats: Funkciju un iespēju kopsavilkums
- Blogs: Iepazīstinām ar Aspose.Cells FOSS: Bibliotēkas pārskats un ātrais sākums