Hvordan style celler med Aspose.Cells FOSS i Python
Aspose.Cells FOSS for Python lar deg bruke skrifttypestiler og bakgrunnsfyll til individuelle celler ved hjelp av cell.style.font og cell.style.fill API-er. Farger uttrykkes som 8-digit AARRGGBB hex strings; for eksempel "FFFF0000" for ugjennomsiktig rød, uten # prefiks. All styling er gjort i ren Python uten avhengighet av Microsoft Excel eller noe eksternt renderingsbibliotek.
Hvorfor style celler med Aspose.Cells FOSS?
- Ingen Excel kreves: Formatering kjøres helt i Python på alle operativsystemer.
- Konsistent fargemodell: En enkelt 8-sifret AARRGGBB-streng dekker skriftfarge og fyllfarge med samme format.
- Lesbare egenskapsnavn:
bold,italic,underline,strikethrough: ingenis_prefiks å huske. - Gjenbrukbare Font-objekter: Opprett en
Fontinstans én gang og bruk den på mange celler for konsistent merkevarebygging.
Steg-for-steg guide
Steg 1: Installer Aspose.Cells FOSS for Python
pip install aspose-cells-fossIngen ekstra systempakker er nødvendige. Importer klassene du trenger fra aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatSteg 2: Angi skriftnavn og størrelse
Få tilgang til en celle gjennom ws.cells["address"] og skriv til cell.style.font.name og 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")Standardfonten er Calibri i 11 pt. Alle skriftnavn som er tilgjengelige på systemet der filen åpnes, kan brukes; å spesifisere en skrifttype som ikke er installert gir ingen feil, men kan vises med en fallback‑font når filen åpnes.
Steg 3: Angi skriftfarge ved hjelp av en AARRGGBB-hexadestreng
Skriftfarger settes med en 8-digit hexadecimal string i AARRGGBB rekkefølge (Alpha, Red, Green, Blue). Gjør ikke inkludere en # prefiks.
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")Vanlig AARRGGBB-farge referanse:
| Farge | AARRGGBB-streng | Merknader |
|---|---|---|
| Svart | FF000000 | Standard skriftfarge |
| Hvit | FFFFFFFF | Bruk på mørke bakgrunner |
| Rød | FFFF0000 | Varsel eller uthev tekst |
| Blå | FF0000FF | Lenker eller utheving |
| Grønn | FF00FF00 | Positive verdier eller suksess |
| Oransje | FFFF8000 | Advarseltekst |
| Grå | FF808080 | Dempet eller deaktivert tekst |
| Marineblå | FF1E64C8 | Bedrifts- / merkevareblå |
De første to heksadesimale sifrene er alfakanalen. Bruk FF for full opasitet. Verdier under FF gir semi-transparente resultater i renderere som støtter alfablending.
Trinn 4: Bruk fet, kursiv, understrekning og gjennomstreking
Angi hvert attributt direkte som en boolsk verdi. Egenskapsnavnene er bold, italic, underline, og strikethrough; gjør ikke bruk is_bold eller is_italic (de navnene finnes ikke i FOSS API-et og vil utløse 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")Alle fire flagg har standardverdien False. De kan kombineres fritt i samme celle.
Trinn 5: Angi en solid bakgrunnsfarge
Bruk cell.style.fill.set_solid_fill("AARRGGBB") for å bruke en bakgrunnsfyll. Fargeformatet er den samme 8‑sifrede AARRGGBB heksadesimale strengen som skriftfarge.
For å fjerne et fyll helt, kall 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() og set_no_fill() er gjensidig eksklusive; å kalle den ene overskriver den andre på samme celle.
Trinn 6: Kombiner flere stiler på én celle
Du kan kjede sammen et vilkårlig antall stil‑egenskaper på samme celle‑referanse. Det er ingen grense for hvor mange stil‑attributter som kan settes før lagring.
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.")Dette gir en hvit, fet, 16pt Arial‑etikett på en marineblå bakgrunn, et vanlig mønster for kolonneoverskrifter.
Trinn 7: Bruk Font‑konstruktøren for gjenbrukbare stiler
Klassen Font kan instansieres med alle sine egenskaper i ett kall, og deretter tildeles flere celler. Dette er nyttig når du ønsker en konsistent husstil brukt på mange celler uten å gjenta de samme egenskapsoppføringene.
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.")Standardverdier for Font‑konstruktøren (alle parametere er valgfrie):
| Parameter | Default |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Fullstendig fungerende eksempel
Følgende selvstendige skript oppretter en arbeidsbok med en stilisert overskriftsrad, fargede datarader og en oppsummeringscelle som demonstrerer alle stil‑API‑ene som er dekket ovenfor:
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.")Vanlige problemer
Feil fargeformat: bruker #RRGGBB i stedet for AARRGGBB
Et innledende # (f.eks. "#FF0000") eller en 6‑sifret RGB‑streng vil ikke gi forventet farge. Egenskapen forventer nøyaktig 8 hex digits with no prefix: "FFFF0000". De første to sifrene er alfa-kanalen; bruk FF for fullstendig ugjennomsiktig.
AttributeError: 'Font' object has no attribute 'is_bold'
FOSS API-et bruker bold, italic, underline, og strikethrough som egenskapsnavn. Den is_bold / is_italic navnekonvensjon tilhører et annet bibliotek og finnes ikke her. Erstatt enhver is_bold referanse med bold.
Stilendringer er ikke synlige etter lagring
Sørg for at du setter stil‑egenskaper på celleobjektet før kaller workbook.save(). Å sette en egenskap på en celle etter lagre‑kallet har ingen effekt på filen som allerede er skrevet. Hvis du gjenbruker en cell variabel, bekreft at den fortsatt refererer til den korrekte celleadressen.
Fyll og skrift på samme celle konflikter visuelt
Det er ingen API‑konflikt; du kan alltid sette begge cell.style.font.color og cell.style.fill.set_solid_fill() uavhengig. Sørg for at tekstfargen har tilstrekkelig kontrast mot bakgrunnsfargen. Hvit tekst (FFFFFFFF) på en mørk fyllfarge som marineblå (FF1E64C8) er en pålitelig kombinasjon.
Ofte stilte spørsmål
Hvordan fjerner jeg en bakgrunnsfyll og får en celle til å ha ingen fyll?
Kall cell.style.fill.set_no_fill(). Dette fjerner eventuell tidligere satt solid fyll fra cellen.
Hvordan tilbakestiller jeg en celle til standard skrift (Calibri 11pt svart)?
Tildel standardverdiene på nytt eksplisitt:
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 = FalseAlternativt, opprett en Font() instans uten argumenter (alle standardverdier) og tilordne den: cell.style.font = Font().
Kan jeg bruke samme skriftstil på et område med celler i en løkke?
Ja. Gå gjennom celleadressene og sett de samme egenskapene på hver. Hvis du bruker den Font konstruktøren for å opprette en delt Font objektet, tilordne det til hver celle med ws.cells[addr].style.font = my_font.
Påvirker styling celleverdier eller formler?
Nei. Styling er kun visuell metadata. cell.style.font og cell.style.fill berører ikke .value eller .formula.
Hvilke lagringsformater bevarer stiler?
Stiler blir fullt bevart når du lagrer til SaveFormat.XLSX. Den SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, og SaveFormat.MARKDOWN formater er ren‑tekst eller strukturert‑tekst formater og bærer ikke stilinformasjon.
Relaterte ressurser:
- Aspose.Cells FOSS for Python: Developer Guide
- Regnearkoperasjoner
- Hvordan laste inn regneark i Python
- Hvordan opprette diagrammer i Python
- API‑referanse: Font, Fill, Style
- Produktoversikt: Sammendrag av funksjoner og muligheter
- Blogg: Introduksjon av Aspose.Cells FOSS: Bibliotekoversikt og rask oppstart