איך לעצב תאים עם Aspose.Cells FOSS ב-Python

איך לעצב תאים עם 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?

  1. אין צורך ב‑Excel: העיצוב מתבצע במלואו ב‑Python על כל מערכת הפעלה.
  2. מודל צבע עקבי: מחרוזת אחת של 8 ספרות בפורמט AARRGGBB מכסה את צבע הגופן וצבע המילוי באותו פורמט.
  3. שמות תכונות קריאים: bold, italic, underline, strikethrough: לא is_ קידומת לזיכרון.
  4. אובייקטי 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"
size11
color"FF000000"
boldFalse
italicFalse
underlineFalse
strikethroughFalse

דוגמה מלאה עובדת

הסקריפט העצמאי הבא יוצר חוברת עבודה עם שורת כותרת מעוצבת, שורות נתונים צבעוניות, ותא סיכום המדגים את כל ה‑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 הפורמטים הם פורמטים של טקסט פשוט או טקסט מובנה ואינם נושאים מידע עיצוב.


משאבים קשורים:

 עברית