Kaip stilizuoti langelius su Aspose.Cells FOSS Python
Aspose.Cells FOSS for Python leidžia taikyti šriftų stilius ir fono užpildus atskiriems langeliams naudojant cell.style.font ir cell.style.fill API. Spalvos išreiškiamos kaip 8-digit AARRGGBB hex strings; pavyzdžiui "FFFF0000" nepermatomam raudonam, be # priešdėlio. Visas stiliavimas atliekamas grynoje Python be jokio priklausomybės nuo Microsoft Excel ar bet kokios išorinės atvaizdavimo bibliotekos.
Kodėl stilizuoti langelius su Aspose.Cells FOSS?
- Excel nereikalingas: Formatuoti vyksta visiškai Python bet kurioje OS.
- Nuoseklus spalvų modelis: Vienas 8‑skaitmenų AARRGGBB eilutė apima šrifto spalvą ir užpildo spalvą tuo pačiu formatu.
- Skaitomi savybių pavadinimai:
bold,italic,underline,strikethrough: neis_priešdėlis, kurį atsiminti. - Pakartotinai naudojami šrifto objektai: Sukurkite
Fontsukurtą egzempliorių vieną kartą ir pritaikykite jį daugeliui langelių, kad išlaikytumėte nuoseklų prekės ženklo įvaizdį.
Žingsnis po žingsnio vadovas
Žingsnis 1: Įdiekite Aspose.Cells FOSS for Python
pip install aspose-cells-fossNereikia jokių papildomų sistemos paketų. Importuokite reikiamas klases iš aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormat2 žingsnis: Nustatykite šrifto pavadinimą ir dydį
Pasiekite langelį per ws.cells["address"] ir rašykite į cell.style.font.name ir 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")Numatytasis šriftas yra Calibri, 11pt. Bet kurį šriftą, esantį sistemoje, kurioje bus atveriamas failas, galima naudoti; nurodant šriftą, kuris nėra įdiegtas, nebus klaidos, tačiau failas gali būti rodomas su atsarginiu šriftu, kai jis atveriamas.
3 žingsnis: Nustatykite šrifto spalvą naudojant AARRGGBB šešioliktainę eilutę
Šrifto spalvos nustatomos naudojant an 8-digit hexadecimal string į AARRGGBB tvarka (Alpha, Red, Green, Blue). Darykite ne įtraukti # priešdėlis.
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")Įprasta AARRGGBB spalvų nuoroda:
| Spalva | AARRGGBB string | Pastabos |
|---|---|---|
| Juoda | FF000000 | Numatytoji šrifto spalva |
| Balta | FFFFFFFF | Naudoti ant tamsaus fono |
| Raudona | FFFF0000 | Įspėjimo arba paryškinto teksto |
| Mėlyna | FF0000FF | Nuorodos arba akcentavimas |
| Žalia | FF00FF00 | Teigiamos reikšmės arba sėkmė |
| Oranžinė | FFFF8000 | Įspėjimo tekstas |
| Pilka | FF808080 | Nuslopintas arba išjungtas tekstas |
| Jūrų mėlyna | FF1E64C8 | Įmonės / prekės ženklo mėlyna |
Pirmi du šešioliktainiai skaitmenys yra alfa kanalas. Naudokite FF pilnam nepermatomumui. Reikšmės žemiau FF sukuria pusiau permatomus rezultatus piešimo varikliuose, kurie palaiko alfa maišymą.
Žingsnis 4: taikyti paryškintą, kursyvą, pabraukimą ir perbraukimą
Nustatykite kiekvieną atributą tiesiogiai kaip loginę reikšmę. Savybių pavadinimai yra bold, italic, underline, ir strikethrough; darykite ne naudoti is_bold arba is_italic (šie pavadinimai neegzistuoja FOSS API ir sukels 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 keturi vėliavų parametrai pagal numatytuosius nustatymus yra False. Jas galima laisvai kombinuoti toje pačioje ląstelėje.
Žingsnis 5: nustatyti vientisą fono užpildymo spalvą
Naudokite cell.style.fill.set_solid_fill("AARRGGBB") norint pritaikyti fono užpildą. Spalvos formatas yra tas pats 8‑skaitmenų AARRGGBB šešioliktainis eilutės formatas kaip ir šrifto spalva.
Norėdami visiškai pašalinti užpildą, iškvieskite 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() ir set_no_fill() yra tarpusavyje išskirtiniai; vieno iškvietimas perrašo kitą toje pačioje ląstelėje.
Žingsnis 6: sujungti kelias stilių savybes vienoje ląstelėje
Galite grandinėti bet kokį skaičių stiliaus savybių toje pačioje ląstelės nuorodoje. Nėra apribojimų, kiek stiliaus atributų gali būti nustatyta prieš išsaugojant.
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.")Tai sukuria baltą, paryškintą, 16pt Arial etiketę ant tamsiai mėlynos fono, dažną šabloną stulpelių antraštėms.
Žingsnis 7: naudoti šrifto konstruktorių pakartotinai naudojamiems stiliams
Ši Font class gali būti instancijuojama su visomis jos savybėmis vienu kvietimu, tada priskiriama kelioms ląstelėms. Tai naudinga, kai norite nuoseklaus namų stiliaus, taikomo daugybei ląstelių, be to paties savybių priskyrimo kartojimo.
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.")Šrifto konstruktoriaus numatytosios reikšmės (visi parametrai yra neprivalomi):
| Parametras | Numatytoji |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Pilnas veikiantis pavyzdys
Toliau pateiktas savarankiškas scenarijus sukuria darbaknygę su stilizuota antraštės eilute, spalvotomis duomenų eilutėmis ir santraukos ląstele, demonstruojančia visą aukščiau aprašytą stilių 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
Neteisingas spalvos formatas: naudojamas #RRGGBB vietoj AARRGGBB
Pradinis # (pvz. "#FF0000") arba 6 skaitmenų RGB eilutė nesukurs laukiamo spalvos. Savybė tiksliai tikisi 8 hex digits with no prefix: "FFFF0000". Pirmi du skaitmenys yra alfa kanalas; naudokite FF pilnai nepermatomam.
AttributeError: 'Font' object has no attribute 'is_bold'
FOSS API naudoja bold, italic, underline, ir strikethrough kaip savybių pavadinimus. Ši is_bold / is_italic pavadinimų konvencija priklauso kitai bibliotikai ir čia neegzistuoja. Pakeiskite bet kokį is_bold nuorodą į bold.
Stiliaus pakeitimai nematomi po išsaugojimo
Įsitikinkite, kad nustatote stiliaus savybes ląstelės objekte prieš iškviečiant workbook.save(). Nustatant savybę ląstelėje po išsaugojimo iškvietimo, tai neturi jokio poveikio jau įrašytam failui. Jei vėl naudojate cell kintamąjį, patikrinkite, ar jis vis dar nurodo teisingą ląstelės adresą.
Užpildas ir šriftas toje pačioje ląstelėje vizualiai konfliktuoja
Nėra API konflikto; visada galite nustatyti abu cell.style.font.color ir cell.style.fill.set_solid_fill() atskirai. Įsitikinkite, kad teksto spalva turi pakankamą kontrastą su fono spalva. Balta teksto spalva (FFFFFFFF) ant tamsios užpildymo spalvos, pvz., jūros mėlynos (FF1E64C8).
Dažnai užduodami klausimai
Kaip pašalinti fono užpildą ir grąžinti ląstelę į be užpildo būseną?
Iškvieskite cell.style.fill.set_no_fill(). Tai pašalina bet kokį anksčiau nustatytą vientisą užpildymą iš langelio.
Kaip atstatyti ląstelę į numatytąjį šriftą (Calibri 11pt juodas)?
Iš naujo priskirkite numatytas reikšmes aiškiai:
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 = FalseAlternatyviai sukurkite Font() instanciją be argumentų (visi numatyti) ir priskirkite ją: cell.style.font = Font().
Ar galiu pritaikyti tą patį šrifto stilių ląstelių diapazonui cikle?
Taip. Pereikite per langelių adresus ir nustatykite tas pačias savybes kiekvienam. Jei naudojate Font konstruktorių sukurti bendrą Font objektą, priskirkite jį kiekvienam langeliui su ws.cells[addr].style.font = my_font.
Ar stilius veikia ląstelių reikšmes ar formules?
Ne. Stilius yra tik vizualinė metaduomenų informacija. cell.style.font ir cell.style.fill nekirskite .value arba .formula.
Kurių išsaugojimo formatų stiliai išlaikomi?
Stiliai yra visiškai išsaugomi, kai įrašoma į SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, ir SaveFormat.MARKDOWN formatai yra paprasto teksto arba struktūruoto teksto formatai ir neperneša stiliaus informacijos.
Susiję ištekliai:
- Aspose.Cells FOSS for Python: Developer Guide
- Skaičiuoklės operacijos
- Kaip įkelti skaičiuokles į Python
- Kaip sukurti diagramas Python
- API nuoroda: Font, Fill, Style
- Produkto apžvalga: Funkcijų ir galimybių santrauka
- Tinklaraštis: Pristatome Aspose.Cells FOSS: Bibliotekos apžvalga ir greitas pradžia