Jak stylować komórki przy użyciu Aspose.Cells FOSS w Python
Aspose.Cells FOSS for Python pozwala stosować style czcionki i wypełnienia tła w poszczególnych komórkach przy użyciu the cell.style.font i cell.style.fill API. Kolory są wyrażane jako 8-digit AARRGGBB hex strings; na przykład "FFFF0000" dla nieprzezroczystej czerwieni, bez # prefiksu. Całe formatowanie jest wykonywane w czystym Python bez zależności od Microsoft Excel ani żadnej zewnętrznej biblioteki renderującej.
Dlaczego stylować komórki przy użyciu Aspose.Cells FOSS?
- Excel nie jest wymagany: Formatowanie działa w pełni w Python na dowolnym systemie operacyjnym.
- Spójny model kolorów: Pojedynczy 8‑cyfrowy ciąg AARRGGBB obejmuje kolor czcionki i kolor wypełnienia w tym samym formacie.
- Czytelne nazwy właściwości:
bold,italic,underline,strikethrough:nieis_prefiks do zapamiętania. - Obiekty czcionek wielokrotnego użytku: Utwórz
Fontinstancję raz i zastosuj ją do wielu komórek, aby zapewnić spójną identyfikację wizualną.
Przewodnik krok po kroku
Krok 1: Zainstaluj Aspose.Cells FOSS dla Python
pip install aspose-cells-fossNie są wymagane dodatkowe pakiety systemowe. Importuj potrzebne klasy z aspose.cells_foss:
from aspose.cells_foss import Workbook, Cell, Font, SaveFormatKrok 2: Ustaw nazwę i rozmiar czcionki
Uzyskaj dostęp do komórki przez ws.cells["address"] i zapisz do cell.style.font.name i 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")Domyślna czcionka to Calibri 11pt. Dowolna nazwa czcionki dostępna w systemie, w którym plik zostanie otwarty, może być użyta; podanie czcionki, która nie jest zainstalowana, nie powoduje błędu, ale może zostać wyświetlona z czcionką zastępczą po otwarciu pliku.
Krok 3: Ustaw kolor czcionki przy użyciu szesnastkowego ciągu AARRGGBB
Kolory czcionek są ustawiane przy użyciu 8-digit hexadecimal string w AARRGGBB kolejności (Alpha, Red, Green, Blue). Nie dołącz # prefiks.
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")Typowe odniesienie kolorów AARRGGBB:
| Kolor | ciąg AARRGGBB | Notatki |
|---|---|---|
| Czarny | FF000000 | Domyślny kolor czcionki |
| Biały | FFFFFFFF | Używać na ciemnych tłach |
| Czerwony | FFFF0000 | Alert lub podświetlenie tekstu |
| Niebieski | FF0000FF | Linki lub wyróżnienie |
| Zielony | FF00FF00 | Pozytywne wartości lub sukces |
| Pomarańczowy | FFFF8000 | Tekst ostrzegawczy |
| Szary | FF808080 | Stłumiony lub wyłączony tekst |
| Granatowy | FF1E64C8 | Niebieski korporacyjny / marki |
Pierwsze dwa cyfry szesnastkowe to kanał alfa. Użyj FF do pełnej nieprzezroczystości. Wartości poniżej FF tworzą półprzezroczyste wyniki w renderownikach obsługujących mieszanie alfa.
Krok 4: Zastosuj pogrubienie, kursywę, podkreślenie i przekreślenie
Ustaw każdy atrybut bezpośrednio jako wartość logiczną. Nazwy właściwości to bold, italic, underline, oraz strikethrough; wykonaj nie użyj is_bold lub is_italic (te nazwy nie istnieją w API FOSS i spowodują 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")Wszystkie cztery flagi domyślnie ustawione są na False. Mogą być dowolnie łączone w tej samej komórce.
Krok 5: Ustaw jednolity kolor wypełnienia tła
Użyj cell.style.fill.set_solid_fill("AARRGGBB") do zastosowania wypełnienia tła. Format koloru to ten sam 8‑znakowy ciąg szesnastkowy AARRGGBB co kolor czcionki.
Aby całkowicie usunąć wypełnienie, wywołaj 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() oraz set_no_fill() są wzajemnie wykluczające się; wywołanie jednego nadpisuje drugie w tej samej komórce.
Krok 6: Połącz wiele stylów w jednej komórce
Możesz łączyć dowolną liczbę właściwości stylu na tej samej referencji komórki. Nie ma limitu liczby ustawionych atrybutów stylu przed zapisaniem.
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.")To tworzy biały, pogrubiony, 16‑punktowy etykietę Arial na granatowym tle, typowy wzorzec dla nagłówków kolumn.
Krok 7: Użyj konstruktora Font do stylów wielokrotnego użytku
Ten Font klasa może być zainicjowana ze wszystkimi swoimi właściwościami w jednym wywołaniu, a następnie przypisana do wielu komórek. Jest to przydatne, gdy chcesz zastosować spójny styl firmowy w wielu komórkach, nie powtarzając tych samych przypisań właściwości.
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.")Domyślne wartości konstruktora Font (wszystkie parametry są opcjonalne):
| Parametr | Domyślna |
|---|---|
name | "Calibri" |
size | 11 |
color | "FF000000" |
bold | False |
italic | False |
underline | False |
strikethrough | False |
Pełny działający przykład
Poniższy samodzielny skrypt tworzy skoroszyt z wystylizowanym wierszem nagłówka, kolorowymi wierszami danych oraz komórką podsumowania, demonstrując wszystkie opisane wyżej API stylizacji:
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.")Typowe problemy
Nieprawidłowy format koloru: użyto #RRGGBB zamiast AARRGGBB
Wiodący # (np. "#FF0000") lub 6‑znakowy ciąg RGB nie wygeneruje oczekiwanego koloru. Właściwość wymaga dokładnie 8 hex digits with no prefix: "FFFF0000". Pierwsze dwa znaki to kanał alfa; użyj FF dla całkowicie nieprzezroczystego.
AttributeError: 'Font' object has no attribute 'is_bold'
API FOSS używa bold, italic, underline, oraz strikethrough jako nazwy właściwości. Ten is_bold / is_italic konwencja nazewnictwa należy do innej biblioteki i nie istnieje tutaj. Zastąp dowolny is_bold odwołanie na bold.
Zmiany stylu nie są widoczne po zapisaniu
Upewnij się, że ustawiasz właściwości stylu na obiekcie komórki przed wywołaniem workbook.save(). Ustawienie właściwości na komórce po wywołaniu zapisu nie ma wpływu na już zapisany plik. Jeśli ponownie używasz a cell zmiennej, potwierdź, że nadal odnosi się do prawidłowego adresu komórki.
Wypełnienie i czcionka w tej samej komórce kolidują wizualnie
Nie ma konfliktu API; możesz zawsze ustawić oba cell.style.font.color i cell.style.fill.set_solid_fill() niezależnie. Upewnij się, że kolor tekstu ma wystarczający kontrast względem koloru tła. Biały tekst (FFFFFFFF) na ciemnym wypełnieniu, takim jak granatowy (FF1E64C8) jest niezawodną kombinacją.
Najczęściej zadawane pytania
Jak usunąć wypełnienie tła i przywrócić komórkę do braku wypełnienia?
Wywołaj cell.style.fill.set_no_fill(). To usuwa wszelkie wcześniej ustawione jednolite wypełnienie z komórki.
Jak przywrócić komórkę do domyślnej czcionki (Calibri 11 pt czarna)?
Przypisz domyślne wartości explicite:
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 = FalseAlternatywnie, utwórz Font() instancję bez argumentów (wszystkie domyślne) i przypisz ją: cell.style.font = Font().
Czy mogę zastosować ten sam styl czcionki do zakresu komórek w pętli?
Tak. Przejdź iteracyjnie po adresach komórek i ustaw te same właściwości dla każdej. Jeśli użyjesz Font konstruktora, aby utworzyć współdzielone Font obiekt, przypisz go do każdej komórki za pomocą ws.cells[addr].style.font = my_font.
Czy stylowanie wpływa na wartości komórek lub formuły?
Nie. Stylowanie jest wyłącznie wizualnym metadanymi. cell.style.font i cell.style.fill nie dotykaj .value lub .formula.
Które formaty zapisu zachowują style?
Style są w pełni zachowywane przy zapisywaniu do SaveFormat.XLSX. Ten SaveFormat.CSV, SaveFormat.TSV, SaveFormat.JSON, i SaveFormat.MARKDOWN formaty są formatami tekstu zwykłego lub tekstu strukturalnego i nie zawierają informacji o stylach.
Powiązane zasoby:
- Aspose.Cells FOSS for Python: Developer Guide
- Operacje arkuszy kalkulacyjnych
- Jak ładować arkusze kalkulacyjne w Python
- Jak tworzyć wykresy w Python
- Referencja API: Font, Fill, Style
- Przegląd produktu: Podsumowanie funkcji i możliwości
- Blog: Wprowadzamy Aspose.Cells FOSS: Przegląd biblioteki i szybki start