Aspose.Cells FOSS ile Python içinde Hücreleri Nasıl Stilize Edilir

Aspose.Cells FOSS ile Python içinde Hücreleri Nasıl Stilize Edilir

Aspose.Cells FOSS for Python bireysel hücrelere yazı tipi stilleri ve arka plan doldurmaları uygulamanıza, … kullanarak olanak tanır cell.style.font ve cell.style.fill API’ler. Renkler şu şekilde ifade edilir 8-digit AARRGGBB hex strings; örneğin "FFFF0000" opak kırmızı için, ön ek olmadan # önek. Tüm stil oluşturma, Microsoft Excel’e veya herhangi bir dış render kütüphanesine bağımlı olmadan saf Python içinde yapılır.

Neden Aspose.Cells FOSS ile Hücreleri Stilize Etmeliyiz?

  1. Excel gerekmez: Biçimlendirme, herhangi bir işletim sisteminde tamamen Python içinde çalışır.
  2. Tutarlı renk modeli: Tek bir 8 haneli AARRGGBB dizesi, aynı formatta yazı tipi rengi ve dolgu rengini kapsar.
  3. Okunabilir özellik adları: bold, italic, underline, strikethrough: hayır is_ hatırlanacak önek.
  4. Yeniden kullanılabilir Font nesneleri: Bir oluştur Font örnek bir kez oluşturun ve tutarlı marka kimliği için birçok hücreye uygulayın.

Adım Adım Kılavuz

Adım 1: Aspose.Cells FOSS’i Python için kurun

pip install aspose-cells-foss

Ek sistem paketleri gerekmez. İhtiyacınız olan sınıfları şuradan içe aktarın aspose.cells_foss:

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

Adım 2: Yazı Tipi Adı ve Boyutunu Ayarlayın

Bir hücreye şuradan erişin ws.cells["address"] ve şuraya yazın cell.style.font.name ve 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")

Varsayılan yazı tipi Calibri 11pt. Dosyanın açılacağı sistemde mevcut olan herhangi bir yazı tipi adı kullanılabilir; yüklü olmayan bir yazı tipi belirtilmesi hata oluşturmaz ancak dosya açıldığında yedek bir yazı tipiyle görüntülenebilir.


Adım 3: AARRGGBB Hex Dizesi Kullanarak Yazı Tipi Rengini Ayarlayın

Yazı tipi renkleri bir 8-digit hexadecimal string içinde AARRGGBB sırayla (Alfa, Kırmızı, Yeşil, Mavi). Yap ma ekle # bir ön ek.

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

Yaygın AARRGGBB renk referansı:

RenkAARRGGBB dizesiNotlar
SiyahFF000000Varsayılan yazı tipi rengi
BeyazFFFFFFFFKaranlık arka planlarda kullanın
KırmızıFFFF0000Uyarı veya vurgulama metni
MaviFF0000FFBağlantılar veya vurgulama
YeşilFF00FF00Pozitif değerler veya başarı
TuruncuFFFF8000Uyarı metni
GriFF808080Sönük veya devre dışı bırakılmış metin
LacivertFF1E64C8Kurumsal / marka mavisi

İlk iki onaltılık basamak alfa kanalını temsil eder. Kullan FF tamamen opak için. Aşağıdaki değerler FF alfa karıştırmayı destekleyen render’larda yarı saydam sonuçlar üretir.


Adım 4: Kalın, İtalik, Altı Çizili ve Üstü Çizili Uygula

Her özelliği doğrudan bir boolean olarak ayarlayın. Özellik adları şunlardır bold, italic, underline, ve strikethrough; yap değil kullan is_bold veya is_italic (bu adlar FOSS API’sinde mevcut değil ve hata oluşturacak 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")

Dört bayrağın tümü varsayılan olarak False. Aynı hücrede serbestçe birleştirilebilirler.


Adım 5: Katı Arka Plan Dolgu Rengi Ayarla

Kullan cell.style.fill.set_solid_fill("AARRGGBB") arka plan doldurması uygulamak için. Renk formatı, yazı tipi rengiyle aynı 8 haneli AARRGGBB onaltılık dizedir.

Bir doldurmayı tamamen kaldırmak için, şu çağrıyı yapın 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() ve set_no_fill() birbirini dışlar; birini çağırmak aynı hücrede diğerini geçersiz kılar.


Adım 6: Tek Bir Hücrede Birden Çok Stili Birleştir

Aynı hücre referansında istediğiniz sayıda stil özelliğini zincirleyebilirsiniz. Kaydetmeden önce ayarlanan stil özniteliklerinin sayısına bir sınırlama yoktur.

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

Bu, lacivert bir arka plan üzerinde beyaz, kalın, 16pt Arial etiket oluşturur; sütun başlıkları için yaygın bir desendir.


Adım 7: Yeniden Kullanılabilir Stiller İçin Font Yapılandırıcısını Kullan

Bu Font sınıfı, tüm özellikleri tek bir çağrıyla örnekleyebilir ve ardından birden fazla hücreye atayabilirsiniz. Bu, aynı özellik atamalarını tekrarlamadan birçok hücreye tutarlı bir ev stili uygulamak istediğinizde kullanışlıdır.

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

Yazı tipi yapıcı varsayılan değerleri (tüm parametreler isteğe bağlıdır):

ParametreVarsayılan
name"Calibri"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

Tam Çalışan Örnek

Aşağıdaki bağımsız script, stil verilmiş bir başlık satırı, renkli veri satırları ve yukarıda ele alınan tüm stil API’lerini gösteren bir özet hücresi içeren bir çalışma kitabı oluşturur:

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

Yaygın Sorunlar

Yanlış renk formatı: kullanılan #RRGGBB yerine AARRGGBB

Başta bir # (örneğin. "#FF0000") ya da 6 haneli bir RGB dizesi beklenen rengi üretmez. Özellik tam olarak 8 hex digits with no prefix: "FFFF0000". İlk iki basamak alfa kanalıdır; kullan FF for tamamen opak için.

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

FOSS API’si kullanır bold, italic, underline, ve strikethrough özellik adları olarak. Bu is_bold / is_italic adlandırma kuralı farklı bir kütüphaneye aittir ve burada mevcut değildir. Herhangi birini değiştirin is_bold referansla bold.

Stil değişiklikleri kaydettikten sonra görünmüyor

Stil özelliklerini hücre nesnesine ayarladığınızdan emin olun önce çağırma workbook.save(). Bir hücrede bir özelliği kaydetme çağrısından sonra ayarlamak, zaten yazılmış dosya üzerinde etkili değildir. Bir değişkeni yeniden kullanırsanız cell değişkenin, hâlâ doğru hücre adresine işaret ettiğini doğrulayın.

Dolgu ve yazı tipi aynı hücrede görsel olarak çakışıyor

API çakışması yoktur; her zaman ikisini de ayarlayabilirsiniz cell.style.font.color ve cell.style.fill.set_solid_fill() bağımsız olarak. Metin renginin arka plan rengine karşı yeterli kontrast sağladığından emin olun. Beyaz metin (FFFFFFFF) koyu bir dolgu üzerinde, örneğin lacivert (FF1E64C8) güvenilir bir kombinasyondur.


Sık Sorulan Sorular

Bir arka plan dolgusunu nasıl kaldırırım ve hücreyi dolgu olmadan geri getiririm?

Çağır cell.style.fill.set_no_fill(). Bu, hücrede daha önce ayarlanmış katı dolguyu kaldırır.

Bir hücreyi varsayılan yazı tipine (Calibri 11pt siyah) nasıl sıfırlarım?

Varsayılan değerleri açıkça yeniden atayın:

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

Alternatif olarak, bir Font() argüman almayan bir örnek (tüm varsayılanlar) oluşturun ve atayın: cell.style.font = Font().

Aynı yazı tipi stilini bir döngü içinde hücre aralığına uygulayabilir miyim?

Evet. Hücre adresleri üzerinde yineleme yapın ve her birine aynı özellikleri ayarlayın. Eğer Font yapıcıyı kullanarak paylaşılan bir Font nesne oluşturursanız, her hücreye şu şekilde atayın: ws.cells[addr].style.font = my_font.

Stil, hücre değerlerini veya formüllerini etkiler mi?

Hayır. Stil, yalnızca görsel meta veridir. cell.style.font ve cell.style.fill dokunma .value veya .formula.

Hangi kaydetme formatları stilleri korur?

Stiller, kaydedilirken tamamen korunur SaveFormat.XLSX. Bu SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, ve SaveFormat.MARKDOWN formatlar, düz metin veya yapılandırılmış metin formatlarıdır ve stil bilgisi taşımaz.


İlgili Kaynaklar:

 Türkçe