Cara Menata Sel dengan Aspose.Cells FOSS di Python
Aspose.Cells FOSS for Python memungkinkan Anda menerapkan gaya font dan isi latar belakang ke sel individual menggunakan cell.style.font dan cell.style.fill API. Warna dinyatakan sebagai 8-digit AARRGGBB hex strings; misalnya "FFFF0000" untuk merah pekat, tanpa # awalan. Semua pemformatan dilakukan dalam Python murni tanpa ketergantungan pada Microsoft Excel atau perpustakaan rendering eksternal mana pun.
Mengapa Menata Sel dengan Aspose.Cells FOSS?
- Tidak memerlukan Excel: Pemformatan berjalan sepenuhnya di Python pada sistem operasi apa pun.
- Model warna yang konsisten: Sebuah string 8-digit AARRGGBB tunggal mencakup warna font dan warna isi dengan format yang sama.
- Nama properti yang dapat dibaca:
bold,italic,underline,strikethrough: tidakis_awalan untuk diingat. - Objek Font yang dapat digunakan kembali: Buat sebuah
Fontinstance sekali dan terapkan ke banyak sel untuk branding yang konsisten.
Panduan Langkah-demi-Langkah
Langkah 1: Instal Aspose.Cells FOSS untuk Python
pip install aspose-cells-fossTidak ada paket sistem tambahan yang diperlukan. Impor kelas yang Anda butuhkan dari aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatLangkah 2: Atur Nama dan Ukuran Font
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")Font default adalah Calibri pada 11pt. Nama font apa pun yang tersedia di sistem tempat file akan dibuka dapat digunakan; menentukan font yang tidak terpasang tidak menyebabkan error tetapi mungkin akan ditampilkan dengan font cadangan saat file dibuka.
Langkah 3: Atur Warna Font Menggunakan String Hex AARRGGBB
Warna font diatur dengan sebuah 8-digit hexadecimal string dalam AARRGGBB urutan (Alpha, Red, Green, Blue). Lakukan tidak sertakan sebuah # 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")Referensi warna AARRGGBB umum:
| Warna | string AARRGGBB | Catatan |
|---|---|---|
| Hitam | FF000000 | Warna font default |
| Putih | FFFFFFFF | Gunakan pada latar belakang gelap |
| Merah | FFFF0000 | Peringatan atau sorot teks |
| Biru | FF0000FF | Tautan atau penekanan |
| Hijau | FF00FF00 | Nilai positif atau keberhasilan |
| Oranye | FFFF8000 | Teks peringatan |
| Abu-abu | FF808080 | Teks redup atau dinonaktifkan |
| Navy | FF1E64C8 | Biru korporat / merek |
Dua digit heksadesimal pertama adalah saluran alfa. Gunakan FF untuk opasitas penuh. Nilai di bawah FF menghasilkan hasil semi-transparan pada renderer yang mendukung pencampuran alfa.
Langkah 4: Terapkan Bold, Italic, Underline, dan Strikethrough
Setel setiap atribut secara langsung sebagai boolean. Nama properti adalah bold, italic, underline, dan strikethrough; lakukan tidak gunakan is_bold atau is_italic (nama-nama itu tidak ada di 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 flag secara default menjadi False. Mereka dapat digabungkan secara bebas pada sel yang sama.
Langkah 5: Atur Warna Isi Latar Belakang Solid
Gunakan cell.style.fill.set_solid_fill("AARRGGBB") untuk menerapkan isian latar belakang. Format warna adalah string heksadesimal 8-digit AARRGGBB yang sama seperti warna font.
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 menimpa yang lain pada sel yang sama.
Langkah 6: Gabungkan Beberapa Gaya pada Satu Sel
Anda dapat menautkan sejumlah properti gaya pada referensi sel yang sama. Tidak ada batasan berapa banyak atribut gaya yang dapat diatur 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 navy, pola umum untuk header kolom.
Langkah 7: Gunakan Konstruktor Font untuk Gaya yang Dapat Digunakan Kembali
Kelas Font kelas dapat diinstansiasi dengan semua propertinya dalam satu panggilan, kemudian ditetapkan ke beberapa sel. Ini berguna ketika Anda menginginkan gaya rumah yang konsisten diterapkan pada banyak sel tanpa mengulang 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 default konstruktor Font (semua parameter bersifat opsional):
| Parameter | Default |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Contoh Kerja Lengkap
Script mandiri berikut membuat workbook dengan baris header yang bergaya, baris data berwarna, dan sel ringkasan yang menunjukkan setiap API styling yang dibahas 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.")Masalah Umum
Format warna salah: menggunakan #RRGGBB alih-alih AARRGGBB
Awalan # (misalnya. "#FF0000") atau string RGB 6-digit tidak akan menghasilkan warna yang diharapkan. Properti mengharapkan tepat 8 hex digits with no prefix: "FFFF0000". Dua digit pertama adalah saluran alfa; gunakan FF untuk sepenuhnya tidak tembus pandang.
AttributeError: 'Font' object has no attribute 'is_bold'
API FOSS menggunakan bold, italic, underline, dan strikethrough sebagai nama properti. The is_bold / is_italic konvensi penamaan milik perpustakaan yang berbeda dan tidak ada di sini. Ganti apa pun is_bold referensi dengan bold.
Perubahan gaya tidak terlihat setelah menyimpan
Pastikan Anda mengatur properti gaya pada objek sel sebelum memanggil workbook.save(). Mengatur properti pada sel setelah pemanggilan save tidak berpengaruh pada file yang sudah ditulis. Jika Anda menggunakan kembali sebuah cell variabel, pastikan masih merujuk ke alamat sel yang benar.
Pengisian (fill) dan font pada sel yang sama berbenturan secara visual
Tidak ada konflik API; Anda selalu dapat mengatur keduanya cell.style.font.color dan cell.style.fill.set_solid_fill() secara terpisah. Pastikan warna teks memiliki kontras yang cukup terhadap warna latar belakang. Teks putih (FFFFFFFF) pada isian gelap seperti biru laut (FF1E64C8) adalah kombinasi yang dapat diandalkan.
Pertanyaan yang Sering Diajukan
Bagaimana cara menghapus isian latar belakang dan mengembalikan sel menjadi tanpa isian?
Panggil cell.style.fill.set_no_fill(). Ini menghapus isian solid yang sebelumnya diatur dari sel.
Bagaimana cara mengatur ulang sel ke font default (Calibri 11pt hitam)?
Tetapkan kembali nilai default 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, buat sebuah Font() instance tanpa argumen (semua default) dan tetapkan itu: cell.style.font = Font().
Apakah saya dapat menerapkan gaya font yang sama ke rentang sel dalam sebuah loop?
Ya. Iterasi alamat sel dan tetapkan properti yang sama pada masing-masing. Jika Anda menggunakan the Font konstruktor untuk membuat sebuah shared Font objek, tetapkan ke setiap sel dengan ws.cells[addr].style.font = my_font.
Apakah pemformatan memengaruhi nilai sel atau rumus?
Tidak. Penataan hanyalah metadata visual semata. cell.style.font dan cell.style.fill jangan sentuh .value atau .formula.
Format penyimpanan mana yang mempertahankan gaya?
Gaya sepenuhnya dipertahankan saat menyimpan ke SaveFormat.XLSX. The SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, dan SaveFormat.MARKDOWN format adalah format teks biasa atau teks terstruktur dan tidak membawa informasi penataan.
Sumber Daya Terkait:
- Aspose.Cells FOSS for Python: Developer Guide
- Operasi Spreadsheet
- Cara Memuat Spreadsheet di Python
- Cara Membuat Diagram di Python
- Referensi API: Font, Fill, Style
- Gambaran Produk: Ringkasan fitur dan kemampuan
- Blog: Memperkenalkan Aspose.Cells FOSS: Gambaran perpustakaan dan memulai cepat