Kuinka muotoilla soluja Aspose.Cells FOSS:lla Python:ssa

Kuinka muotoilla soluja Aspose.Cells FOSS:lla Python:ssa

Aspose.Cells FOSS for Python antaa sinun soveltaa fonttityylejä ja taustatäytteitä yksittäisiin soluihin käyttäen cell.style.font ja cell.style.fill API-rajapintoja. Värit ilmaistaan 8-digit AARRGGBB hex strings; esimerkiksi "FFFF0000" läpinäkymättömän punaisen väriksi, ilman # etuliitettä. Kaikki tyylittely tehdään puhtaassa Python:ssa ilman riippuvuutta Microsoft Excelistä tai mistään ulkoisesta renderöintikirjastosta.

Miksi muotoilla soluja Aspose.Cells FOSS:lla?

  1. Exceliä ei tarvita: Muotoilu suoritetaan kokonaan Python:ssa millä tahansa käyttöjärjestelmällä.
  2. Johdonmukainen värimalli: Yksi 8-numeroista AARRGGBB-merkkijono kattaa fontin värin ja täytön värin samalla formaatilla.
  3. Luettavat ominaisuuden nimet: bold, italic, underline, strikethrough: ei is_ etuliitettä muistaa.
  4. Uudelleenkäytettävät Font-objektit: Luo Font instanssi kerran ja sovella sitä moniin soluihin johdonmukaisen brändäyksen saavuttamiseksi.

Vaiheittainen opas

Vaihe 1: Asenna Aspose.Cells FOSS Python:lle

pip install aspose-cells-foss

Lisäisiä järjestelmäpaketteja ei tarvita. Tuo tarvitsemasi luokat kohteesta aspose.cells_foss:

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

Vaihe 2: Aseta fontin nimi ja koko

Käytä solua kautta ws.cells["address"] ja kirjoita kohteeseen cell.style.font.name ja 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")

Oletusfontti on Calibri 11 pt. Kaikkia järjestelmässä, jossa tiedosto avataan, käytettävissä olevia fonttien nimiä voidaan käyttää; fontin määrittäminen, jota ei ole asennettu, ei aiheuta virhettä, mutta tiedostoa avattaessa se voidaan näyttää varafontilla.


Vaihe 3: Aseta fontin väri AARRGGBB‑heksamerkillä

Fontin värit asetetaan 8-digit hexadecimal string järjestyksessä AARRGGBB (Alpha, Red, Green, Blue). Tee ei sisällytä # etuliite.

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

Yleinen AARRGGBB‑väriviite:

VäriAARRGGBB-merkkijonoHuomautukset
MustaFF000000Oletusfontin väri
ValkoinenFFFFFFFFKäytä tummilla taustoilla
PunainenFFFF0000Hälytä tai korosta teksti
SininenFF0000FFLinkit tai korostus
VihreäFF00FF00Positiiviset arvot tai onnistuminen
OranssiFFFF8000Varoitusteksti
HarmaaFF808080Hillitty tai poissa käytöstä oleva teksti
LaivastonsininenFF1E64C8Yrityksen / brändin sininen

Ensimmäiset kaksi heksadesimaalista merkkiä ovat alfakanava. Käytä FF täysin läpinäkymättömään. Arvot alle FF tuottavat puoliläpinäkyviä tuloksia renderöijissä, jotka tukevat alfasekoitusta.


Vaihe 4: Lisää lihavointi, kursiivi, alleviivaus ja yliviivaus

Aseta jokainen attribuutti suoraan booleanina. Ominaisuuksien nimet ovat bold, italic, underline, ja strikethrough; tee ei käytä is_bold tai is_italic (noiden nimien ei ole FOSS API:ssa, ja ne nostavat 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")

Kaikki neljä lippua oletusarvoisesti ovat False. Ne voidaan yhdistää vapaasti samassa solussa.


Vaihe 5: Aseta kiinteä taustaväri

Käytä cell.style.fill.set_solid_fill("AARRGGBB") taustatäytön soveltamiseksi. Väri­muoto on sama 8‑numeroinen AARRGGBB‑heksadesimaalijono kuin fontin väri.

Poista täyttö kokonaan kutsumalla 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() ja set_no_fill() ovat keskenään poissulkevia; toisen kutsuminen korvaa toisen samassa solussa.


Vaihe 6: Yhdistä useita tyylejä yhteen soluun

Voit ketjuttaa minkä tahansa määrän tyyliominaisuuksia samassa solureferenssissä. Ei ole rajoitusta sille, kuinka monta tyyliattribuuttia voidaan asettaa ennen tallentamista.

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

Tämä tuottaa valkoisen, lihavoidun, 16pt Arial -otsikon tummansinisellä taustalla, mikä on yleinen malli sarakeotsikoille.


Vaihe 7: Käytä Font-konstruktoria uudelleenkäytettävissä tyyleissä

Se Font Luokka voidaan instansioida kaikilla sen ominaisuuksilla yhdellä kutsulla, ja sitten sijoittaa useisiin soluihin. Tämä on hyödyllistä, kun haluat yhdenmukaisen talon tyylin sovellettavan moniin soluihin toistamatta samoja ominaisuuksien asetteluja.

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

Fontin konstruktorin oletusarvot (kaikki parametrit ovat valinnaisia):

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

Täydellinen toimiva esimerkki

Seuraava itsenäinen skripti luo työkirjan, jossa on tyylitelty otsikkorivi, värilliset datarivit ja yhteenvetosolu, joka havainnollistaa yllä käsiteltyjä kaikkiin tyylien API:ita:

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

Yleisiä ongelmia

Väärä väri­muoto: käyttäen #RRGGBB sen sijaan AARRGGBB

Johtava # (esim. "#FF0000") tai 6‑merkkinen RGB-merkkijono ei tuota odotettua väriä. Ominaisuus odottaa tarkalleen 8 hex digits with no prefix: "FFFF0000". Ensimmäiset kaksi numeroa ovat alfakanava; käytä FF täysin läpinäkymättömälle.

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

FOSS API käyttää bold, italic, underline, ja strikethrough ominaisuuksien nimiä. Tämä is_bold / is_italic nimikäytäntö kuuluu toiseen kirjastoon eikä ole olemassa täällä. Korvaa kaikki is_bold viite bold.

Tyylimuutokset eivät näy tallennuksen jälkeen

Varmista, että asetat tyyliominaisuudet solun objektissa ennen kutsumista workbook.save(). Ominaisuuden asettaminen soluun tallennuskutsun jälkeen ei vaikuta jo kirjoitettuun tiedostoon. Jos käytät uudelleen cell muuttujaa, varmista että se edelleen viittaa oikeaan solun osoitteeseen.

Täyttö ja fontti samassa solussa aiheuttavat visuaalisen ristiriidan

API-ristiriitaa ei ole; voit aina asettaa molemmat cell.style.font.color ja cell.style.fill.set_solid_fill() itsenäisesti. Varmista, että tekstin väri on riittävän kontrastissa taustaväriä vastaan. Valkoinen teksti (FFFFFFFF) tummalla täytöllä, kuten laivastonsininen (FF1E64C8) on luotettava yhdistelmä.


Usein kysytyt kysymykset

Kuinka poistan taustatäytön ja palautan solun ilman täytettä?

Kutsu cell.style.fill.set_no_fill(). Tämä poistaa kaikki aiemmin asetetut kiinteät täytöt solusta.

Kuinka palautan solun oletusfonttiin (Calibri 11pt musta)?

Määritä oletusarvot uudelleen eksplisiittisesti:

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

Vaihtoehtoisesti, luo Font() instanssi ilman argumentteja (kaikki oletusasetukset) ja määritä se: cell.style.font = Font().

Voinko käyttää samaa fonttityyliä soluväliin silmukassa?

Kyllä. Käy solujen osoitteet läpi ja aseta samat ominaisuudet jokaiselle. Jos käytät Font konstruktoria luodaksesi jaetun Font objektin, määritä se jokaiselle solulle käyttäen ws.cells[addr].style.font = my_font.

Vaikuttaako tyylittely soluarvoihin tai kaavoihin?

Ei. Tyylittely on puhtaasti visuaalinen metadata. cell.style.font ja cell.style.fill älä kosketa .value tai .formula.

Mitkä tallennusmuodot säilyttävät tyylit?

Tyylit säilyvät täysin tallennettaessa kohteeseen SaveFormat.XLSX. Tämä SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, ja SaveFormat.MARKDOWN formatit ovat pelkkä teksti- tai rakenteinen teksti -formaatteja, eikä ne sisällä tyylitietoja.


Aiheeseen liittyvät resurssit:

 Suomi