Sådan styles celler med Aspose.Cells FOSS i Python

Sådan styles 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 den cell.style.font og cell.style.fill API’er. Farver udtrykkes som 8-digit AARRGGBB hex strings; for eksempel "FFFF0000" for uigennemsigtig rød, uden # præfiks. Al styling udføres i ren Python uden afhængighed af Microsoft Excel eller noget eksternt renderingsbibliotek.

Hvorfor style celler med Aspose.Cells FOSS?

  1. Ingen Excel påkrævet: Formatering kører udelukkende i Python på ethvert OS.
  2. Ensartet farvemodel: En enkelt 8-cifret AARRGGBB-streng dækker både skrifttypefarve og udfyldningsfarve med samme format.
  3. Læselige egenskabsnavne: bold, italic, underline, strikethrough: ingen is_ præfiks at huske.
  4. Genanvendelige Font-objekter: 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. Importér de klasser, du har brug for, fra aspose.cells_foss:

from aspose.cells_foss import Workbook, Cell, Font, SaveFormat

Trin 2: Angiv skrifttypenavn 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å systemet, hvor filen åbnes, kan bruges; at angive en skrifttype, der ikke er installeret, forårsager ingen fejl, men kan blive gengivet med en fallback‑skrifttype, når filen åbnes.


Trin 3: Angiv skrifttypefarve ved hjælp af en AARRGGBB-hex-streng

Skriftfarver sættes med en 8-digit hexadecimal string i AARRGGBB rækkefølge (Alpha, Rød, Grøn, Blå). Gør ikke inkluder 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-strengNoter
SortFF000000Standard skrifttypefarve
HvidFFFFFFFFBrug på mørke baggrunde
RødFFFF0000Advarsel eller fremhæv tekst
BlåFF0000FFLinks eller fremhævning
GrønFF00FF00Positive værdier eller succes
OrangeFFFF8000Advarselstekst
GråFF808080Dæmpet eller deaktiveret tekst
MarineblåFF1E64C8Virksomheds- / brandblå

De første to hex‑cifre er alfa‑kanalen. Brug FF til 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

Indstil hvert attribut direkte som en boolesk værdi. Egenskabsnavnene er bold, italic, underline, og strikethrough; gør ikke brug 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 i samme celle.


Trin 5: Angiv 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 en udfyldning 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 på den samme celle.


Trin 6: Kombinér flere stilarter på én celle

Du kan kæde et vilkårligt antal stil‑egenskaber på den samme celle‑reference. Der er ingen grænse for, hvor mange stil‑attributter der kan sættes inden gemning.

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 giver en hvid, fed, 16 pt Arial‑etiket på en marineblå baggrund, et almindeligt mønster for kolonneoverskrifter.


Trin 7: Brug Font‑konstruktøren til genanvendelige stilarter

Klassen Font klasse 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å tværs af 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

Fuldstændigt fungerende eksempel

Det følgende selvstændige script opretter en projektmappe med en formateret header‑række, farvede data‑rækker og en opsummeringscelle, der demonstrerer alle de styling‑API’er, der er gennemgået 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 indledende # (f.eks. "#FF0000") eller en 6-cifret RGB-streng vil ikke give den forventede farve. Egenskaben forventer præcis 8 hex digits with no prefix: "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. Den is_bold / is_italic navnekonvention 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 indstille stil‑egenskaber på celle‑objektet før 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, bekræft at den stadig refererer til den korrekte celleadresse.

Udfyldning og skrifttype på samme celle konflikter visuelt

Der er ingen API‑konflikt; du kan altid indstille begge 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 standard skrifttype (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 standardindstillinger) og tildel den: cell.style.font = Font().

Kan jeg anvende den samme skrifttype‑stil på et område af celler i en løkke?

Ja. Gå igennem celleadresserne og indstil de samme egenskaber på hver. Hvis du bruger den Font konstruktør til at oprette en 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 styling?

Stilarter bevares fuldstændigt, når de gemmes til SaveFormat.XLSX. Den SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, og SaveFormat.MARKDOWN formater er ren-tekst- eller struktureret-tekst-formater og indeholder ikke stylinginformation.


Relaterede ressourcer:

 Dansk