Cara Menggayakan Sel dengan Aspose.Cells FOSS dalam Python
Aspose.Cells FOSS for Python membolehkan anda menerapkan gaya fon dan latar belakang ke sel individu menggunakan cell.style.font dan cell.style.fill API. Warna dinyatakan sebagai 8-digit AARRGGBB hex strings; contohnya "FFFF0000" untuk merah legap, tanpa # awalan. Semua gaya dilakukan dalam Python tulen tanpa kebergantungan pada Microsoft Excel atau mana-mana perpustakaan rendering luaran.
Mengapa Menggayakan Sel dengan Aspose.Cells FOSS?
- Tidak perlukan Excel: Pemformatan dijalankan sepenuhnya dalam Python pada mana-mana OS.
- Model warna yang konsisten: Satu rentetan 8-digit AARRGGBB meliputi warna fon dan warna latar dengan format yang sama.
- Nama sifat yang mudah dibaca:
bold,italic,underline,strikethrough: tiadais_awalan untuk diingat. - Objek Fon boleh guna semula: Cipta satu
Fontinstans sekali dan terapkan pada banyak sel untuk penjenamaan yang konsisten.
Panduan Langkah demi Langkah
Langkah 1: Pasang Aspose.Cells FOSS untuk Python
pip install aspose-cells-fossTiada pakej sistem tambahan diperlukan. Import kelas yang anda perlukan dari aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatLangkah 2: Tetapkan Nama Fon dan Saiz
Akses sel melalui ws.cells["address"] dan tulis ke cell.style.font.name dan 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")Fon lalai ialah Calibri pada 11pt. Sebarang nama fon yang tersedia pada sistem di mana fail akan dibuka boleh digunakan; menentukan fon yang tidak dipasang tidak akan menyebabkan ralat tetapi mungkin dipaparkan dengan fon gantian apabila fail dibuka.
Langkah 3: Tetapkan Warna Fon Menggunakan Rentetan Heks AARRGGBB
Warna fon ditetapkan dengan satu 8-digit hexadecimal string dalam AARRGGBB susunan (Alpha, Red, Green, Blue). Lakukan tidak sertakan satu # awalan.
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")Rujukan warna AARRGGBB umum:
| Warna | rentetan AARRGGBB | Nota |
|---|---|---|
| Hitam | FF000000 | Warna fon lalai |
| Putih | FFFFFFFF | Gunakan pada latar belakang gelap |
| Merah | FFFF0000 | Amaran atau sorot teks |
| Biru | FF0000FF | Pautan atau penekanan |
| Hijau | FF00FF00 | Nilai positif atau kejayaan |
| Oren | FFFF8000 | Teks amaran |
| Kelabu | FF808080 | Teks yang lembut atau dinyahaktifkan |
| Biru gelap | FF1E64C8 | Biru korporat / jenama |
Dua digit heks pertama ialah saluran alfa. Gunakan FF untuk sepenuhnya legap. Nilai di bawah FF menghasilkan keputusan separa lutsinar dalam perender yang menyokong pencampuran alfa.
Langkah 4: Terapkan Bold, Italic, Underline, dan Strikethrough
Tetapkan setiap atribut secara langsung sebagai boolean. Nama sifatnya ialah bold, italic, underline, dan strikethrough; lakukan tidak gunakan is_bold atau is_italic (nama-nama itu tidak wujud pada API FOSS dan akan menyebabkan 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")Keempat-empat bendera secara lalai kepada False. Mereka boleh digabungkan secara bebas pada sel yang sama.
Langkah 5: Tetapkan Warna Isian Latar Belakang Pepejal
Gunakan cell.style.fill.set_solid_fill("AARRGGBB") untuk menerapkan isian latar belakang. Format warna adalah rentetan heks 8-digit AARRGGBB yang sama seperti warna fon.
Untuk menghapus isian sepenuhnya, panggil 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() dan set_no_fill() saling eksklusif; memanggil salah satu akan menggantikan yang lain pada sel yang sama.
Langkah 6: Gabungkan Pelbagai Gaya pada Satu Sel
Anda boleh menambah rantai sebarang bilangan sifat gaya pada rujukan sel yang sama. Tiada had berapa banyak atribut gaya yang boleh ditetapkan sebelum menyimpan.
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.")Ini menghasilkan label berwarna putih, tebal, 16pt Arial pada latar belakang biru laut, corak biasa untuk tajuk lajur.
Langkah 7: Gunakan Konstruktor Font untuk Gaya yang Boleh Diguna Semula
Kelas Font dapat diinstansiasi dengan semua propertinya dalam satu panggilan, kemudian ditetapkan ke beberapa sel. Ini berguna apabila anda ingin gaya rumah yang konsisten diterapkan pada banyak sel tanpa mengulangi penetapan properti yang sama.
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.")Nilai lalai konstruktor Fon (semua parameter adalah pilihan):
| Parameter | Lalai |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Contoh Kerja Lengkap
Skrip berdiri sendiri berikut mencipta buku kerja dengan baris tajuk yang bergaya, baris data berwarna, dan sel ringkasan yang menunjukkan setiap API gaya yang dibincangkan di atas:
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.")Isu Umum
Format warna salah: menggunakan #RRGGBB daripada AARRGGBB
Awalan # (contoh. "#FF0000") atau rentetan RGB 6-digit tidak akan menghasilkan warna yang diharapkan. Properti ini mengharapkan tepat 8 hex digits with no prefix: "FFFF0000". Dua digit pertama ialah saluran alfa; gunakan FF untuk sepenuhnya legap.
AttributeError: 'Font' object has no attribute 'is_bold'
API FOSS menggunakan bold, italic, underline, dan strikethrough sebagai nama sifat. The is_bold / is_italic konvensyen penamaan adalah milik perpustakaan lain dan tidak wujud di sini. Gantikan apa-apa is_bold rujukan dengan bold.
Perubahan gaya tidak kelihatan selepas disimpan
Pastikan anda menetapkan sifat gaya pada objek sel sebelum memanggil workbook.save(). Menetapkan sifat pada sel selepas panggilan simpan tidak memberi kesan kepada fail yang sudah ditulis. Jika anda menggunakan semula satu cell pembolehubah, sahkan ia masih merujuk kepada alamat sel yang betul.
Isian dan fon pada sel yang sama bertindih secara visual
Tiada konflik API; anda sentiasa boleh menetapkan kedua-duanya cell.style.font.color dan cell.style.fill.set_solid_fill() secara bebas. Pastikan warna teks mempunyai kontras yang mencukupi terhadap warna latar belakang. Teks putih (FFFFFFFF) pada isian gelap seperti biru laut (FF1E64C8) adalah kombinasi yang boleh dipercayai.
Soalan Lazim
Bagaimana saya mengeluarkan isian latar belakang dan mengembalikan sel kepada tiada isian?
Panggil cell.style.fill.set_no_fill(). Ini menghapus sebarang isian pepejal yang telah ditetapkan sebelum ini daripada sel.
Bagaimana saya menetapkan semula sel kepada fon lalai (Calibri 11pt hitam)?
Tetapkan semula nilai lalai secara eksplisit:
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 = FalseSebagai alternatif, cipta satu Font() instans tanpa argumen (semua lalai) dan tetapkan ia: cell.style.font = Font().
Bolehkah saya menggunakan gaya fon yang sama kepada satu julat sel dalam gelung?
Ya. Ulangi melalui alamat sel dan tetapkan sifat yang sama pada setiap satu. Jika anda menggunakan Font konstruktor untuk membuat satu yang dikongsi Font objek, tetapkan ia kepada setiap sel dengan ws.cells[addr].style.font = my_font.
Adakah pemformatan mempengaruhi nilai atau formula sel?
Tidak. Penggayaan hanyalah metadata visual. cell.style.font dan cell.style.fill tidak menyentuh .value atau .formula.
Format simpanan mana yang mengekalkan gaya?
Gaya disimpan sepenuhnya apabila disimpan ke SaveFormat.XLSX. Itu SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, dan SaveFormat.MARKDOWN format adalah format teks-biasa atau teks-terstruktur dan tidak membawa maklumat penggayaan.
Sumber Berkaitan:
- Aspose.Cells FOSS for Python: Developer Guide
- Operasi Hamparan
- Cara Memuatkan Hamparan dalam Python
- Cara Membuat Carta dalam Python
- Rujukan API: Fon, Isian, Gaya
- Gambaran Produk: Ringkasan ciri dan keupayaan
- Blog: Memperkenalkan Aspose.Cells FOSS: Gambaran perpustakaan dan permulaan cepat