Wie man Zellen mit Aspose.Cells FOSS in Python formatiert

Wie man Zellen mit Aspose.Cells FOSS in Python formatiert

Aspose.Cells FOSS for Python ermöglicht das Anwenden von Schriftstilen und Hintergrundfüllungen auf einzelne Zellen mithilfe der cell.style.font und cell.style.fill APIs. Farben werden ausgedrückt als 8-digit AARRGGBB hex strings; zum Beispiel "FFFF0000" für undurchsichtiges Rot, ohne # Präfix. Alle Formatierungen werden in reinem Python durchgeführt, ohne Abhängigkeit von Microsoft Excel oder irgendeiner externen Rendering-Bibliothek.

Warum Zellen mit Aspose.Cells FOSS formatieren?

  1. Kein Excel erforderlich: Die Formatierung läuft vollständig in Python auf jedem Betriebssystem.
  2. Konsistentes Farbmodell: Ein einzelner 8‑stelliger AARRGGBB‑String deckt Schriftfarbe und Füllfarbe im selben Format ab.
  3. Lesbare Eigenschaftsnamen: bold, italic, underline, strikethrough: nein is_ Präfix zum Merken.
  4. Wiederverwendbare Schriftobjekte: Erstelle ein Font Instanz einmal und wende sie auf viele Zellen an, um ein konsistentes Branding zu gewährleisten.

Schritt-für-Schritt-Anleitung

Schritt 1: Installieren Sie Aspose.Cells FOSS für Python

pip install aspose-cells-foss

Es werden keine zusätzlichen Systempakete benötigt. Importiere die Klassen, die du brauchst, aus aspose.cells_foss:

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

Schritt 2: Schriftname und -größe festlegen

Greife über eine Zelle zu ws.cells["address"] und schreibe in cell.style.font.name und 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")

Die Standardschrift ist Calibri mit 11pt. Jeder Schriftartname, der auf dem System, auf dem die Datei geöffnet wird, verfügbar ist, kann verwendet werden; die Angabe einer nicht installierten Schriftart verursacht keinen Fehler, kann jedoch beim Öffnen der Datei mit einer Ersatzschriftart dargestellt werden.


Schritt 3: Schriftfarbe mit einem AARRGGBB‑Hex‑String festlegen

Schriftfarben werden mit einem 8-digit hexadecimal string in AARRGGBB Reihenfolge (Alpha, Rot, Grün, Blau). nicht ein # Präfix.

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

Übliche AARRGGBB‑Farbreferenz:

FarbeAARRGGBB-ZeichenketteHinweise
SchwarzFF000000Standard‑Schriftfarbe
WeißFFFFFFFFAuf dunklen Hintergründen verwenden
RotFFFF0000Hinweis‑ oder Hervorhebungstext
BlauFF0000FFLinks oder Hervorhebung
GrünFF00FF00Positive Werte oder Erfolg
OrangeFFFF8000Warntext
GrauFF808080Gedämpfter oder deaktivierter Text
MarineblauFF1E64C8Unternehmens‑/Markenblau

Die ersten beiden Hex‑Ziffern sind der Alphakanal. Verwenden Sie FF für vollständig undurchsichtig. Werte unter FF erzeugen halbtransparente Ergebnisse in Renderern, die Alpha‑Blending unterstützen.


Schritt 4: Fett, Kursiv, Unterstrichen und Durchgestrichen anwenden

Setzen Sie jedes Attribut direkt als Booleschen Wert. Die Eigenschaftsnamen sind bold, italic, underline, und strikethrough; tun Sie nicht verwenden is_bold oder is_italic (diese Namen existieren nicht in der FOSS-API und werden auslösen 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 Flags sind standardmäßig False. Sie können frei auf derselben Zelle kombiniert werden.


Schritt 5: Eine einfarbige Hintergrundfüllfarbe festlegen

Verwenden cell.style.fill.set_solid_fill("AARRGGBB") um eine Hintergrundfüllung anzuwenden. Das Farbformat ist dieselbe 8‑stellige AARRGGBB‑Hex‑Zeichenkette wie die Schriftfarbe.

Um eine Füllung vollständig zu entfernen, rufen Sie 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() und set_no_fill() sind gegenseitig ausschließend; das Aufrufen des einen überschreibt das andere in derselben Zelle.


Schritt 6: Mehrere Stile auf einer Zelle kombinieren

Sie können beliebig viele Stil‑Eigenschaften an derselben Zellreferenz verketten. Es gibt keine Begrenzung, wie viele Stil‑Attribute vor dem Speichern gesetzt werden können.

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

Damit entsteht ein weißes, fettes, 16‑pt‑Arial‑Label auf einem marineblauen Hintergrund, ein gängiges Muster für Spaltenüberschriften.


Schritt 7: Den Font‑Konstruktor für wiederverwendbare Stile nutzen

Die Font Klasse kann in einem Aufruf mit allen ihren Eigenschaften instanziiert werden und dann mehreren Zellen zugewiesen werden. Das ist nützlich, wenn Sie einen konsistenten Hausstil über viele Zellen hinweg anwenden möchten, ohne dieselben Eigenschaftszuweisungen zu wiederholen.

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

Standardwerte des Font‑Konstruktors (alle Parameter sind optional):

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

Vollständiges funktionierendes Beispiel

Das folgende eigenständige Skript erstellt eine Arbeitsmappe mit einer formatierten Kopfzeile, farbigen Datenzeilen und einer Zusammenfassungszelle, die jede oben behandelte Styling‑API demonstriert:

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

Häufige Probleme

Falsches Farbformat: Verwendung von #RRGGBB statt AARRGGBB

Ein führendes # (z.B. "#FF0000") oder ein 6‑stelliger RGB‑String wird nicht die erwartete Farbe erzeugen. Die Eigenschaft erwartet genau 8 hex digits with no prefix: "FFFF0000". Die ersten beiden Stellen sind der Alpha‑Kanal; verwenden Sie FF für vollständig undurchsichtig.

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

Die FOSS API verwendet bold, italic, underline, und strikethrough als Eigenschaftsnamen. Der is_bold / is_italic Namenskonvention gehört zu einer anderen Bibliothek und existiert hier nicht. Ersetzen Sie jede is_bold Referenz durch bold.

Stiländerungen nach dem Speichern nicht sichtbar

Stellen Sie sicher, dass Sie Stil‑Eigenschaften am Zellenobjekt setzen vor Aufruf workbook.save(). Das Setzen einer Eigenschaft auf einer Zelle nach dem Speicheraufruf hat keine Auswirkung auf die bereits geschriebene Datei. Wenn Sie ein cell Variable, bestätigen Sie, dass sie noch auf die korrekte Zelladresse verweist.

Füllung und Schrift in derselben Zelle stehen visuell im Konflikt

Es gibt keinen API-Konflikt; Sie können immer beide setzen cell.style.font.color und cell.style.fill.set_solid_fill() unabhängig. Stellen Sie sicher, dass die Textfarbe ausreichend Kontrast zur Hintergrundfarbe hat. Weißer Text (FFFFFFFF) auf einer dunklen Füllung wie Marineblau (FF1E64C8) ist eine zuverlässige Kombination.


Häufig gestellte Fragen

Wie entferne ich eine Hintergrundfüllung und setze eine Zelle zurück auf keine Füllung?

Rufen Sie cell.style.fill.set_no_fill(). Dies entfernt jede zuvor gesetzte einfarbige Füllung aus der Zelle.

Wie setze ich eine Zelle zurück auf die Standardschrift (Calibri 11 pt schwarz)?

Weisen Sie die Standardwerte explizit erneut zu:

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

Alternativ erstellen Sie ein Font() Instanz ohne Argumente (alle Vorgaben) und weisen Sie sie zu: cell.style.font = Font().

Kann ich denselben Schriftstil in einer Schleife auf einen Zellbereich anwenden?

Ja. Iterieren Sie über die Zelladressen und setzen Sie dieselben Eigenschaften für jede. Wenn Sie die Font Konstruktor verwenden, um ein gemeinsames Font Objekt, weise es jeder Zelle zu mit ws.cells[addr].style.font = my_font.

Beeinflusst das Styling Zellwerte oder Formeln?

Nein. Styling ist rein visuelle Metadaten. cell.style.font und cell.style.fill nicht berühren .value oder .formula.

Welche Speicherformate erhalten Stile?

Stile werden vollständig beibehalten, wenn man speichert nach SaveFormat.XLSX. Der SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, und SaveFormat.MARKDOWN Formate sind Klartext- oder strukturierten Textformate und tragen keine Styling-Informationen.


Verwandte Ressourcen:

 Deutsch