איך לעצב תאים עם 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 קוד פתוח עבור 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). עשה לא כולל a # קידומת.
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; עשה לא השתמש 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") או מחרוזת RGB של 6 ספרות לא תייצר את הצבע הצפוי. המאפיין מצפה בדיוק 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(). הגדרת מאפיין על תא לאחר קריאת השמירה אינה משפיעה על הקובץ שכבר נכתב. אם אתה משתמש מחדש ב- 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 הפורמטים הם פורמטים של טקסט פשוט או טקסט מובנה ואינם נושאים מידע עיצוב.
משאבים קשורים: