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?
- Geen Excel vereist: Opmaak wordt volledig uitgevoerd in Python op elk besturingssysteem.
- Consistent kleurenmodel: Een enkele 8-cijferige AARRGGBB‑string dekt zowel letterkleur als vulkleur met hetzelfde formaat.
- Leesbare eigenschapsnamen:
bold,italic,underline,strikethrough: geenis_prefix om te onthouden. - Herbruikbare Font‑objecten: Maak een
Fontinstantie éé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-fossEr zijn geen extra systeempakketten vereist. Importeer de klassen die je nodig hebt van aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatStap 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:
| Kleur | AARRGGBB‑string | Opmerkingen |
|---|---|---|
| Zwart | FF000000 | Standaardletterkleur |
| Wit | FFFFFFFF | Gebruik op donkere achtergronden |
| Rood | FFFF0000 | Waarschuwing of markeer tekst |
| Blauw | FF0000FF | Links of nadruk |
| Groen | FF00FF00 | Positieve waarden of succes |
| Oranje | FFFF8000 | Waarschuwingstekst |
| Grijs | FF808080 | Gedempt of uitgeschakelde tekst |
| Marineblauw | FF1E64C8 | Zakelijk / 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):
| Parameter | Standaard |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
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 = FalseAlternatief 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:
- Aspose.Cells FOSS for Python: Developer Guide
- Spreadsheetbewerkingen
- Hoe spreadsheets te laden in Python
- Hoe grafieken te maken in Python
- API-referentie: Font, Fill, Style
- Productoverzicht: Samenvatting van functies en mogelijkheden
- Blog: Introductie van Aspose.Cells FOSS: Bibliotheekoverzicht en snelle start