Sådan formaterer du celler med Aspose.Cells FOSS i Python
Aspose.Cells FOSS for Python lader dig anvende skrifttypestilarter og baggrundsudfyldninger på individuelle celler ved hjælp af cell.style.font og cell.style.fill API’erne. Farver udtrykkes som 8-cifrede AARRGGBB hex-strenge; for eksempel "FFFF0000" for uigennemsigtig rød, uden # præfiks. Al formatering udføres i ren Python uden afhængighed af Microsoft Excel eller noget eksternt renderingsbibliotek.
Hvorfor formatere celler med Aspose.Cells FOSS?
- Ingen Excel påkrævet: Formatering kører udelukkende i Python på enhver OS.
- Ensartet farvemodel: En enkelt 8-cifret AARRGGBB-streng dækker både skrifttypefarve og udfyldningsfarve med samme format.
- Læsevenlige egenskabsnavne:
bold,italic,underline,strikethrough: ingenis_‑præfiks at huske. - Genanvendelige skrifttypeobjekter: Opret en
Font‑instans én gang og anvend den på mange celler for ensartet branding.
Trin-for-trin guide
Trin 1: Installer Aspose.Cells FOSS for Python
pip install aspose-cells-fossIngen yderligere systempakker er påkrævet. Importer de klasser, du har brug for, fra aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatTrin 2: Indstil skriftnavn og størrelse
Få adgang til en celle gennem 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 11pt. Ethvert skriftnavn, der er tilgængeligt på det system, hvor filen åbnes, kan bruges; at angive en skrifttype, der ikke er installeret, forårsager ingen fejl, men kan blive gengivet med en erstatningsskrifttype, når filen åbnes.
Trin 3: Indstil skrifttypefarve ved hjælp af en AARRGGBB-hex-streng
Skriftfarver indstilles med en 8-cifret hexadecimal streng i AARRGGBB rækkefølge (Alpha, Rød, Grøn, Blå). Medtag ikke en # præfiks.
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")Almindelig AARRGGBB-farvereference:
| Farve | AARRGGBB string | Noter |
|---|---|---|
| Sort | FF000000 | Standard skrifttypefarve |
| Hvid | FFFFFFFF | Brug på mørke baggrunde |
| Rød | FFFF0000 | Advarsel eller fremhævet tekst |
| Blå | FF0000FF | Links eller fremhævning |
| Grøn | FF00FF00 | Positive værdier eller succes |
| Orange | FFFF8000 | Advarselstekst |
| Grå | FF808080 | Dæmpet eller deaktiveret tekst |
| Marine | FF1E64C8 | Corporate / brand blå |
De første to hex‑cifre er alfa‑kanalen. Brug FF for fuldt ugennemsigtigt. Værdier under FF giver semi‑gennemsigtige resultater i renderere, der understøtter alfa‑blanding.
Trin 4: Anvend fed, kursiv, understregning og gennemstregning
Sæt hver attribut direkte som en boolesk værdi. Egenskabsnavnene er bold, italic, underline og strikethrough; brug ikke is_bold eller is_italic (de navne findes ikke på FOSS API’et og vil udlø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 flag har standardværdien False. De kan kombineres frit på den samme celle.
Trin 5: Indstil en ensfarvet baggrundsfarve
Brug cell.style.fill.set_solid_fill("AARRGGBB") til at anvende en baggrundsudfyldning. Farveformatet er den samme 8‑cifrede AARRGGBB-hex‑streng som skrifttypefarve.
For at fjerne et fyld helt, kald 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 gensidigt udelukkende; at kalde den ene overskriver den anden i den samme celle.
Trin 6: Kombiner flere stilarter på én celle
Du kan kæde et vilkårligt antal stilegenskaber på den samme cellehenvisning. Der er ingen grænse for, hvor mange stilegenskaber der kan sættes, før du gemmer.
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 producerer en hvid, fed, 16pt Arial-etiket på en marineblå baggrund, et almindeligt mønster for kolonneoverskrifter.
Trin 7: Brug Font Constructor til genanvendelige stilarter
Font-klassen kan instantieres med alle dens egenskaber i ét kald og derefter tildeles til flere celler. Dette er nyttigt, når du ønsker en ensartet husstil anvendt på mange celler uden at gentage de samme egenskabstildelinger.
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.")Standardværdier for Font‑konstruktøren (alle parametre er valgfrie):
| Parameter | Standard |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Komplet arbejdseksempel
Det følgende selvstændige script opretter en projektmappe med en formateret overskriftsrække, farvede datarækker og en opsummeringscelle, der demonstrerer alle styling‑API’er, der er dækket 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.")Almindelige problemer
Forkert farveformat: bruger #RRGGBB i stedet for AARRGGBB
Et førende # (f.eks. "#FF0000") eller en 6‑cifret RGB‑streng vil ikke give den forventede farve. Egenskaben forventer præcis 8 hex‑cifre uden præfiks: "FFFF0000". De første to cifre er alfa‑kanalen; brug FF for fuldt opak.
AttributeError: 'Font' object has no attribute 'is_bold'
FOSS API’en bruger bold, italic, underline og strikethrough som egenskabsnavne. is_bold / is_italic‑navnekonventionen tilhører et andet bibliotek og findes ikke her. Erstat enhver is_bold‑reference med bold.
Stilændringer er ikke synlige efter gemning
Sørg for, at du indstiller stil‑egenskaber på celleobjektet før du kalder workbook.save(). At indstille en egenskab på en celle efter gem‑kaldet har ingen effekt på den allerede skrevne fil. Hvis du genbruger en cell‑variabel, skal du bekræfte, at den stadig refererer til den korrekte celleadresse.
Udfyldning og skrifttype i samme celle konflikter visuelt
Der er ingen API‑konflikt; du kan altid indstille både cell.style.font.color og cell.style.fill.set_solid_fill() uafhængigt. Sørg for, at tekstfarven har tilstrækkelig kontrast til baggrundsfarven. Hvid tekst (FFFFFFFF) på en mørk udfyldning såsom marineblå (FF1E64C8) er en pålidelig kombination.
Ofte stillede spørgsmål
Hvordan fjerner jeg en baggrundsudfyldning og får en celle til at have ingen udfyldning?
Kald cell.style.fill.set_no_fill(). Dette fjerner enhver tidligere indstillet ensfarvet udfyldning fra cellen.
Hvordan nulstiller jeg en celle til standardfonten (Calibri 11pt sort)?
Tildel standardværdierne eksplicit igen:
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 kan du oprette en Font()‑instans uden argumenter (alle standardværdier) og tildele den: cell.style.font = Font().
Kan jeg anvende den samme fontstil på et område af celler i en løkke?
Ja. Gå igennem celleadresserne og indstil de samme egenskaber på hver. Hvis du bruger Font constructor til at oprette et delt Font-objekt, tildel det til hver celle med ws.cells[addr].style.font = my_font.
Påvirker styling celleværdier eller formler?
Nej. Styling er udelukkende visuel metadata. cell.style.font og cell.style.fill berører ikke .value eller .formula.
Hvilke gemmeformater bevarer stilarter?
Stilarter bevares fuldt, når du gemmer til SaveFormat.XLSX. Formaterne SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON og SaveFormat.MARKDOWN er ren‑tekst‑ eller struktureret‑tekst‑formater og indeholder ikke stylinginformation.
Relaterede ressourcer: