Как да стилизирате клетки с 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_префикс за запомняне. - Повторно използваеми Font обекти: Създайте
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 шестнадесетичен низ
Цветовете на шрифта се задават с an 8-digit hexadecimal string в AARRGGBB ред (Alpha, Red, Green, Blue). Направете не включи # prefix.
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 string | Бележки |
|---|---|---|
| Черен | FF000000 | Цвят на шрифта по подразбиране |
| Бял | FFFFFFFF | Използвайте върху тъмни фонове |
| Червен | FFFF0000 | Текст за предупреждение или акцент |
| Син | FF0000FF | Връзки или акцент |
| Зелено | FF00FF00 | Положителни стойности или успех |
| Оранжево | FFFF8000 | Текст за предупреждение |
| Сиво | FF808080 | Затъмнен или деактивиран текст |
| Тъмносин | FF1E64C8 | Корпоративен / бранд син |
Първите два шестнадесетични знака са алфа каналът. Използвайте FF за напълно непрозрачен. FF произвеждат полупрозрачни резултати в рендеръри, които поддържат алфа смесване.
Стъпка 4: Прилагане на удебеляване, курсив, подчертаване и задраскване
Задайте всеки атрибут директно като булев. Имената на свойствата са bold, italic, underline, и strikethrough; изпълнете не използвайте is_bold или is_italic (тези имена не съществуват в API‑то на FOSS и ще предизвикат 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 за многократна употреба на стилове
Това 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.")Стойности по подразбиране за конструктора на шрифт (всички параметри са незадължителни):
| Параметър | По подразбиране |
|---|---|
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'
FOSS API използва bold, italic, underline, и strikethrough като имена на свойства. Това is_bold / is_italic конвенцията за именуване принадлежи на различна библиотека и не съществува тук. Заменете всяко is_bold препратка с bold.
Стиловите промени не се виждат след запазване
Уверете се, че задавате свойства за стил върху обекта на клетката преди извикване workbook.save(). Задаването на свойство на клетка след извикването на save няма ефект върху вече записания файл. Ако преизползвате 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Алтернативно, създайте a Font() екземпляр без аргументи (всички по подразбиране) и го присвоете: cell.style.font = Font().
Мога ли да приложа същия стил на шрифт към диапазон от клетки в цикъл?
Да. Обхождайте адресите на клетките и задайте същите свойства на всяка. Ако използвате the 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: Преглед на библиотеката и бърз старт