Cara Menata Sel dengan Aspose.Cells FOSS di Python

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?

  1. Tidak memerlukan Excel: Pemformatan berjalan sepenuhnya di Python pada sistem operasi apa pun.
  2. Model warna yang konsisten: Sebuah string 8-digit AARRGGBB tunggal mencakup warna font dan warna isi dengan format yang sama.
  3. Nama properti yang dapat dibaca: bold, italic, underline, strikethrough: tidak is_ awalan untuk diingat.
  4. Objek Font yang dapat digunakan kembali: Buat sebuah Font instance 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-foss

Tidak ada paket sistem tambahan yang diperlukan. Impor kelas yang Anda butuhkan dari aspose.cells_foss:

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

Langkah 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:

Warnastring AARRGGBBCatatan
HitamFF000000Warna font default
PutihFFFFFFFFGunakan pada latar belakang gelap
MerahFFFF0000Peringatan atau sorot teks
BiruFF0000FFTautan atau penekanan
HijauFF00FF00Nilai positif atau keberhasilan
OranyeFFFF8000Teks peringatan
Abu-abuFF808080Teks redup atau dinonaktifkan
NavyFF1E64C8Biru 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):

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

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 = False

Sebagai 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:

 Bahasa Indonesia