Hoe cellen opmaken met Aspose.Cells FOSS in Python

Hoe cellen opmaken met Aspose.Cells FOSS in Python

Aspose.Cells FOSS for Python laat je lettertype‑stijlen en achtergrondvullingen toepassen op individuele cellen met behulp van de cell.style.font en cell.style.fill API’s. Kleuren worden uitgedrukt als 8-digit AARRGGBB hex strings; bijvoorbeeld "FFFF0000" voor ondoorzichtig rood, zonder # prefix. Alle opmaak wordt gedaan in pure Python zonder afhankelijkheid van Microsoft Excel of enige externe renderbibliotheek.

Waarom cellen opmaken met Aspose.Cells FOSS?

  1. Geen Excel vereist: Opmaak wordt volledig uitgevoerd in Python op elk besturingssysteem.
  2. Consistent kleurenmodel: Een enkele 8-cijferige AARRGGBB‑string dekt zowel letterkleur als vulkleur met hetzelfde formaat.
  3. Leesbare eigenschapsnamen: bold, italic, underline, strikethrough: geen is_ prefix om te onthouden.
  4. Herbruikbare Font‑objecten: Maak een Font instantie één keer en pas deze toe op vele cellen voor consistente branding.

Stapsgewijze handleiding

Stap 1: Installeer Aspose.Cells FOSS voor Python

pip install aspose-cells-foss

Er zijn geen extra systeempakketten vereist. Importeer de klassen die je nodig hebt van aspose.cells_foss:

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

Stap 2: Stel lettertype‑naam en -grootte in

Toegang tot een cel via ws.cells["address"] en schrijf naar cell.style.font.name en 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")

Het standaardlettertype is Calibri op 11pt. Elke lettertype‑naam die beschikbaar is op het systeem waarop het bestand wordt geopend, kan worden gebruikt; het opgeven van een lettertype dat niet geïnstalleerd is, veroorzaakt geen fout, maar kan resulteren in een fallback‑lettertype wanneer het bestand wordt geopend.


Stap 3: Stel letterkleur in met een AARRGGBB‑hex‑string

Letterkleur wordt ingesteld met een 8-digit hexadecimal string in AARRGGBB volgorde (Alpha, Rood, Groen, Blauw). Doe niet voeg een # voorvoegsel.

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")

Veelvoorkomende AARRGGBB‑kleurreferentie:

KleurAARRGGBB‑stringOpmerkingen
ZwartFF000000Standaardletterkleur
WitFFFFFFFFGebruik op donkere achtergronden
RoodFFFF0000Waarschuwing of markeer tekst
BlauwFF0000FFLinks of nadruk
GroenFF00FF00Positieve waarden of succes
OranjeFFFF8000Waarschuwingstekst
GrijsFF808080Gedempt of uitgeschakelde tekst
MarineblauwFF1E64C8Zakelijk / merkblauw

De eerste twee hexadecimale cijfers zijn het alfakanaal. Gebruik FF voor volledig ondoorzichtig. Waarden onder FF leveren semi-transparante resultaten in renderers die alfamenging ondersteunen.


Stap 4: Vet, Cursief, Onderstrepen en Doorhalen toepassen

Stel elk attribuut direct in als een boolean. De eigenschapsnamen zijn bold, italic, underline, en strikethrough; doe niet gebruiken is_bold of is_italic (die namen bestaan niet in de FOSS API en zullen een fout veroorzaken 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 vier vlaggen hebben standaard de waarde False. Ze kunnen vrijelijk worden gecombineerd in dezelfde cel.


Stap 5: Een effen achtergrondkleur instellen

Gebruik cell.style.fill.set_solid_fill("AARRGGBB") om een achtergrondvulling toe te passen. Het kleurformaat is dezelfde 8-cijferige AARRGGBB hexadecimale string als letterkleur.

Om een vulling volledig te verwijderen, roep aan 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() en set_no_fill() staan elkaar wederzijds tegen; het aanroepen van de ene overschrijft de andere op dezelfde cel.


Stap 6: Meerdere stijlen combineren op één cel

Je kunt een willekeurig aantal stijl‑eigenschappen ketenen op dezelfde celreferentie. Er is geen limiet aan hoeveel stijl‑attributen je kunt instellen vóór het opslaan.

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.")

Dit levert een wit, vet, 16pt Arial‑label op een marineblauwe achtergrond op, een veelvoorkomend patroon voor kolomkoppen.


Stap 7: De Font‑constructor gebruiken voor herbruikbare stijlen

De Font klasse kan in één oproep worden geïnstantieerd met al zijn eigenschappen, en vervolgens aan meerdere cellen worden toegewezen. Dit is handig wanneer je een consistente huisstijl wilt toepassen over veel cellen zonder dezelfde eigenschapsinstellingen te herhalen.

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.")

Standaardwaarden van de Font‑constructor (alle parameters zijn optioneel):

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

Volledig werkend voorbeeld

Het volgende zelfstandige script maakt een werkmap met een gestylede koprij, gekleurde gegevensrijen en een samenvattingscel die elke hierboven behandelde styling‑API demonstreert:

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.")

Veelvoorkomende problemen

Verkeerd kleurformaat: gebruik van #RRGGBB in plaats van AARRGGBB

Een leidende # (bijv. "#FF0000") of een 6-cijferige RGB‑string zal niet de verwachte kleur opleveren. De eigenschap verwacht precies 8 hex digits with no prefix: "FFFF0000". De eerste twee cijfers zijn het alfakanaal; gebruik FF for volledig ondoorzichtig.

AttributeError: 'Font' object has no attribute 'is_bold'

De FOSS API gebruikt bold, italic, underline, en strikethrough als de eigenschapsnamen. De is_bold / is_italic naamgevingsconventie behoort tot een andere bibliotheek en bestaat hier niet. Vervang elke is_bold referentie door bold.

Stijlaanpassingen niet zichtbaar na opslaan

Zorg ervoor dat je stijl‑eigenschappen instelt op het celobject voordat je aanroept workbook.save(). Het instellen van een eigenschap op een cel na de save‑aanroep heeft geen effect op het reeds geschreven bestand. Als je een cell variabele opnieuw gebruikt, controleer dan of deze nog steeds naar het juiste celadres verwijst.

Vulling en lettertype op dezelfde cel conflicteren visueel

Er is geen API‑conflict; je kunt altijd beide cell.style.font.color en cell.style.fill.set_solid_fill() onafhankelijk. Zorg ervoor dat de tekstkleur voldoende contrast heeft met de achtergrondkleur. Witte tekst (FFFFFFFF) op een donkere vulling zoals marineblauw (FF1E64C8) is een betrouwbare combinatie.


Veelgestelde vragen

Hoe verwijder ik een achtergrondvulling en zet ik een cel terug naar geen vulling?

Roep cell.style.fill.set_no_fill(). Dit verwijdert elke eerder ingestelde effen vulling van de cel.

Hoe zet ik een cel terug naar het standaardlettertype (Calibri 11pt zwart)?

Ken de standaardwaarden expliciet opnieuw toe:

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

Alternatief kun je een Font() instantie zonder argumenten (alle standaardinstellingen) en wijs deze toe: cell.style.font = Font().

Kan ik dezelfde lettertype‑stijl toepassen op een reeks cellen in een lus?

Ja. Loop door de celadressen en stel dezelfde eigenschappen in voor elk. Als je de Font constructor om een gedeelde Font object, wijs het toe aan elke cel met ws.cells[addr].style.font = my_font.

Heeft styling invloed op celwaarden of formules?

Nee. Styling is puur visuele metadata. cell.style.font en cell.style.fill niet aanraken .value of .formula.

Welke opslagformaten behouden stijlen?

Stijlen worden volledig behouden bij het opslaan naar SaveFormat.XLSX. De SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, en SaveFormat.MARKDOWN formaten zijn platte-tekst- of gestructureerde-tekstformaten en bevatten geen opmaakinformatie.


Gerelateerde bronnen:

 Nederlands