Як стилізувати клітинки за допомогою Aspose.Cells FOSS у Python
Aspose.Cells FOSS for Python дозволяє застосовувати стилі шрифту та заповнення фону до окремих клітинок, використовуючи cell.style.font і cell.style.fill API. Кольори задаються у вигляді 8-digit AARRGGBB hex strings; наприклад "FFFF0000" для непрозорого червоного, без # префікс. Усе оформлення виконується чистим Python без залежності від Microsoft Excel або будь‑якої зовнішньої бібліотеки рендерингу.
Навіщо стилізувати клітинки за допомогою Aspose.Cells FOSS?
- Excel не потрібен: Форматування виконується повністю в Python на будь‑якій ОС.
- Послідовна колірна модель: Одиний 8‑цифровий рядок AARRGGBB охоплює колір шрифту та колір заливки в одному форматі.
- Читабельні назви властивостей:
bold,italic,underline,strikethrough: ніis_префікс для запам’ятовування. - Повторно використовувані об’єкти шрифтів: Створити a
Fontстворіть екземпляр один раз і застосуйте його до багатьох клітинок для послідовного брендингу.
Покроковий посібник
Крок 1: Встановіть Aspose.Cells FOSS для Python
pip install aspose-cells-fossДодаткові системні пакети не потрібні. Імпортуйте потрібні класи з aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatКрок 2: Встановіть назву шрифту та розмір
Отримайте доступ до клітинки через ws.cells["address"] і запишіть у cell.style.font.name і 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")Шрифт за замовчуванням — Calibri розміром 11pt. Будь-яка назва шрифту, доступна в системі, де буде відкрито файл, може бути використана; вказання шрифту, який не встановлений, не викликає помилку, але може відобразитися з резервним шрифтом під час відкриття файлу.
Крок 3: Встановіть колір шрифту, використовуючи шістнадцятковий рядок AARRGGBB
Кольори шрифту задаються за допомогою 8-digit hexadecimal string у AARRGGBB замовлення (Alpha, Red, Green, Blue). Зробіть не включити # префікс.
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")Загальний довідник кольорів AARRGGBB:
| Колір | AARRGGBB рядок | Примітки |
|---|---|---|
| Чорний | FF000000 | Колір шрифту за замовчуванням |
| Білий | FFFFFFFF | Використовуйте на темному фоні |
| Червоний | FFFF0000 | Текст попередження або виділення |
| Синій | FF0000FF | Посилання або виділення |
| Зелений | FF00FF00 | Позитивні значення або успіх |
| Помаранчевий | FFFF8000 | Текст попередження |
| Сірий | FF808080 | Тусклий або вимкнений текст |
| Темно-синій | FF1E64C8 | Корпоративний / брендовий синій |
Перші два шістнадцяткові цифри — це альфа-канал. Використовуйте FF для повної непрозорості. Значення нижче FF створює напівпрозорі результати у рендерерах, які підтримують альфа‑змішування.
Крок 4: Застосувати жирний, курсив, підкреслення та перекреслення
Встановіть кожен атрибут безпосередньо як булевий. Імена властивостей: bold, italic, underline, і strikethrough; do не використовувати is_bold або is_italic (ці імена не існують у FOSS API і будуть викликати 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")Усі чотири прапорці за замовчуванням False. Їх можна вільно комбінувати в одній клітинці.
Крок 5: Встановити суцільний колір заповнення фону
Використовуйте cell.style.fill.set_solid_fill("AARRGGBB") для застосування заповнення фону. Формат кольору — той самий 8‑цифровий AARRGGBB шістнадцятковий рядок, як і колір шрифту.
Щоб повністю видалити заповнення, викличте 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() і set_no_fill() взаємно виключаються; виклик одного перекриває інший у тій самій клітинці.
Крок 6: Поєднати кілька стилів в одній клітинці
Ви можете ланцюжком встановлювати будь-яку кількість властивостей стилю на одному посиланні клітинки. Немає обмежень щодо кількості встановлених атрибутів стилю перед збереженням.
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.")Це створює білу, жирну, 16pt Arial мітку на темно-синьому фоні, типову схему для заголовків колонок.
Крок 7: Використовувати конструктор Font для багаторазових стилів
The Font клас можна інстанціювати з усіма його властивостями в одному виклику, а потім призначити кільком клітинкам. Це корисно, коли ви хочете застосувати послідовний корпоративний стиль до багатьох клітинок без повторення однакових призначень властивостей.
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.")Типові значення конструктора Font (всі параметри є необов’язковими):
| Параметр | За замовчуванням |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Повний робочий приклад
Наступний самодостатній скрипт створює робочу книгу зі стилізованим рядком заголовка, кольоровими рядками даних та підсумковою клітинкою, що демонструє всі API стилізації, розглянуті вище:
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.")Типові проблеми
Неправильний формат кольору: використано #RRGGBB замість AARRGGBB
Початковий # (наприклад,. "#FF0000") або 6-цифровий рядок RGB не дасть очікуваного кольору. Властивість очікує точно 8 hex digits with no prefix: "FFFF0000". Перші два цифри — це альфа-канал; використовуйте FF для повністю непрозорого.
AttributeError: 'Font' object has no attribute 'is_bold'
API FOSS використовує bold, italic, underline, і strikethrough як імена властивостей. Це is_bold / is_italic правило іменування належить до іншої бібліотеки і тут не існує. Замініть будь‑яке is_bold посиланням bold.
Зміни стилю не видно після збереження
Переконайтеся, що ви встановлюєте властивості стилю на об’єкті клітини перед виклик workbook.save(). Встановлення властивості клітинки після виклику save не впливає на вже записаний файл. Якщо ви повторно використовуєте a cell змінну, переконайтеся, що вона все ще посилається на правильну адресу клітинки.
Заповнення та шрифт в одній клітинці візуально конфліктують
Конфлікту API немає; ви завжди можете встановити обидва cell.style.font.color і cell.style.fill.set_solid_fill() незалежно. Переконайтеся, що колір тексту має достатній контраст із кольором фону. Білий текст (FFFFFFFF) на темному заповненні, наприклад, темно‑синьому (FF1E64C8) — надійна комбінація.
Часті запитання
Як видалити заповнення фону і повернути клітинку до стану без заповнення?
Виклик cell.style.fill.set_no_fill(). Це видаляє будь‑яке раніше встановлене суцільне заповнення з комірки.
Як скинути клітинку до шрифту за замовчуванням (Calibri 11pt чорний)?
Явно переназначте значення за замовчуванням:
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Альтернативно створіть Font() екземпляр без аргументів (усі значення за замовчуванням) і призначте його: cell.style.font = Font().
Чи можу я застосувати один і той же стиль шрифту до діапазону клітинок у циклі?
Так. Пройдіться по адресах клітинок і встановіть однакові властивості для кожної. Якщо ви використовуєте Font конструктор для створення спільного Font об’єкт, призначте його кожній клітинці за допомогою ws.cells[addr].style.font = my_font.
Чи впливає стилізація на значення клітинок або формули?
Ні. Стилізація — це лише візуальні метадані. cell.style.font і cell.style.fill не торкайтеся .value або .formula.
Які формати збереження зберігають стилі?
Стилі повністю зберігаються при збереженні у SaveFormat.XLSX. Цей SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, і SaveFormat.MARKDOWN формати є plain-text або structured-text форматами і не містять інформації про стилі.
Пов’язані ресурси:
- Aspose.Cells FOSS for Python: Developer Guide
- Операції з електронними таблицями
- Як завантажити електронні таблиці в Python
- Як створювати діаграми в Python
- Довідка API: Font, Fill, Style
- Огляд продукту: Огляд функцій та можливостей
- Блог: Представляємо Aspose.Cells FOSS: Огляд бібліотеки та швидкий старт