Sådan formaterer du celler med Aspose.Cells FOSS i Python

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?

  1. Ingen Excel påkrævet: Formatering kører udelukkende i Python på enhver OS.
  2. Ensartet farvemodel: En enkelt 8-cifret AARRGGBB-streng dækker både skrifttypefarve og udfyldningsfarve med samme format.
  3. Læsevenlige egenskabsnavne: bold, italic, underline, strikethrough: ingen is_‑præfiks at huske.
  4. 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-foss

Ingen 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, SaveFormat

Trin 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:

FarveAARRGGBB stringNoter
SortFF000000Standard skrifttypefarve
HvidFFFFFFFFBrug på mørke baggrunde
RødFFFF0000Advarsel eller fremhævet tekst
BlåFF0000FFLinks eller fremhævning
GrønFF00FF00Positive værdier eller succes
OrangeFFFF8000Advarselstekst
GråFF808080Dæmpet eller deaktiveret tekst
MarineFF1E64C8Corporate / 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):

ParameterStandard
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

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 = False

Alternativt 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:

 Dansk