Πώς να μορφοποιήσετε κελιά με Aspose.Cells FOSS στο Python
Aspose.Cells FOSS for Python σας επιτρέπει να εφαρμόζετε στυλ γραμματοσειράς και γεμίσματα φόντου σε μεμονωμένα κελιά χρησιμοποιώντας το cell.style.font και cell.style.fill APIs. Τα χρώματα εκφράζονται ως 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
Τα χρώματα γραμματοσειράς ορίζονται με ένα 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 παράγουν ημιδιαφανή αποτελέσματα σε renderers που υποστηρίζουν alpha blending.
Βήμα 4: Εφαρμογή έντονου, πλάγιου, υπογράμμισης και διακριτής γραμμής
Ορίστε κάθε χαρακτηριστικό άμεσα ως boolean. Τα ονόματα των ιδιοτήτων είναι bold, italic, underline, και strikethrough; κάντε μην χρησιμοποιήσετε 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 hex όπως το χρώμα γραμματοσειράς.
Για να αφαιρέσετε εντελώς ένα γέμισμα, καλέστε 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.")Αυτό παράγει μια λευκή, έντονη ετικέτα Arial 16pt σε ναυτικό φόντο, ένα κοινό μοτίβο για κεφαλίδες στηλών.
Βήμα 7: Χρήση του κατασκευαστή Font για επαναχρησιμοποιήσιμα στυλ
Η Font class μπορεί να δημιουργηθεί με όλες τις ιδιότητές της σε μία κλήση, και στη συνέχεια να ανατεθεί σε πολλαπλά κελιά. Αυτό είναι χρήσιμο όταν θέλετε ένα συνεπές εσωτερικό στυλ να εφαρμοστεί σε πολλά κελιά χωρίς να επαναλαμβάνετε τις ίδιες αναθέσεις ιδιοτήτων.
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 |
Πλήρες λειτουργικό παράδειγμα
Το παρακάτω αυτόνομο script δημιουργεί ένα βιβλίο εργασίας με μια στυλιζαρισμένη γραμμή κεφαλίδας, χρωματιστές γραμμές δεδομένων και ένα κελί σύνοψης που επιδεικνύει κάθε 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(). Η ρύθμιση μιας ιδιότητας σε ένα κελί μετά την κλήση αποθήκευσης δεν έχει καμία επίδραση στο αρχείο που έχει ήδη γραφτεί. Εάν επαναχρησιμοποιήσετε ένα 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() instance χωρίς ορίσματα (όλες οι προεπιλογές) και εκχωρήστε το: cell.style.font = Font().
Μπορώ να εφαρμόσω το ίδιο στυλ γραμματοσειράς σε μια περιοχή κελιών μέσα σε βρόχο;?
Ναι. Επανάληψη στις διευθύνσεις των κελιών και ορίστε τις ίδιες ιδιότητες σε κάθε μία. Εάν χρησιμοποιήσετε το Font constructor για τη δημιουργία ενός κοινόχρηστου Font object, εκχωρήστε το σε κάθε κελί με 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 μορφές είναι μορφές απλού κειμένου ή δομημένου κειμένου και δεν μεταφέρουν πληροφορίες μορφοποίησης.
Σχετικοί Πόροι:
- Aspose.Cells FOSS for Python: Developer Guide
- Λειτουργίες Φύλλων Εργασίας
- Πώς να φορτώσετε φύλλα εργασίας στο Python
- Πώς να δημιουργήσετε διαγράμματα στο Python
- Αναφορά API: Font, Fill, Style
- Επισκόπηση Προϊόντος: Περίληψη χαρακτηριστικών και δυνατοτήτων
- Ιστολόγιο: Παρουσίαση του Aspose.Cells FOSS: Επισκόπηση βιβλιοθήκης και γρήγορη εκκίνηση