Διαχείριση Πινάκων Παρουσίασης με Python
Εισαγωγή
Ένας πίνακας στο PowerPoint είναι ένας αποδοτικός τρόπος παρουσίασης πληροφοριών. Πληροφορίες που είναι διαταγμένες σε ένα πλέγμα κελιών (γραμμές και στήλες) είναι απλές και εύκολες στην κατανόηση.
Το Aspose.Slides παρέχει την κλάση Table , την κλάση Cell και άλλους σχετικούς τύπους για να σας βοηθήσει να δημιουργήσετε, να ενημερώσετε και να διαχειριστείτε πίνακες σε οποιαδήποτε παρουσίαση.
Δημιουργία πινάκων από την αρχή
Αυτή η ενότητα δείχνει πώς να δημιουργήσετε έναν πίνακα από την αρχή στο Aspose.Slides προσθέτοντας ένα σχήμα πίνακα σε μια διαφάνεια, ορίζοντας τις γραμμές και τις στήλες του και καθορίζοντας ακριβείς διαστάσεις. Θα δείτε επίσης πώς να γεμίσετε τα κελιά με κείμενο, να προσαρμόσετε την στοίχιση και τα περιγράμματα και να προσαρμόσετε την εμφάνιση του πίνακα.
- Δημιουργήστε ένα στιγμιότυπο της κλάσης Presentation .
- Πάρτε μια αναφορά σε μια διαφάνεια κατά το δείκτη της.
- Ορίστε έναν πίνακα με πλάτη στηλών.
- Ορίστε έναν πίνακα με ύψη γραμμών.
- Προσθέστε έναν Table στη διαφάνεια.
- Περιηγηθείτε σε κάθε Cell και μορφοποιήστε τα άνω, κάτω, δεξιά και αριστερά περιγράμματα.
- Συγχωνεύστε τα κελιά των δύο πρώτων γραμμών και των δύο πρώτων στηλών σε ένα ενιαίο κελί.
- Πρόσβαση στο TextFrame ενός Cell .
- Προσθέστε κείμενο στο TextFrame .
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Το παρακάτω παράδειγμα Python δείχνει πώς να δημιουργήσετε έναν πίνακα σε μια παρουσίαση:
import aspose.pydrawing as draw
import aspose.slides as slides
# Δημιουργία της κλάσης Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης.
with slides.Presentation() as presentation:
# Πρόσβαση στην πρώτη διαφάνεια.
slide = presentation.slides[0]
# Ορισμός πλάτους στηλών και ύψους γραμμών.
column_widths = [50, 50, 50]
row_heights = [50, 30, 30, 30, 30]
# Προσθήκη σχήματος πίνακα στη διαφάνεια.
table = slide.shapes.add_table(100, 50, column_widths, row_heights)
# Ορισμός μορφοποίησης περιγράμματος για κάθε κελί.
for row in table.rows:
for cell in row:
cell.cell_format.border_top.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_top.fill_format.solid_fill_color.color = draw.Color.red
cell.cell_format.border_top.width = 5
cell.cell_format.border_bottom.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_bottom.fill_format.solid_fill_color.color= draw.Color.red
cell.cell_format.border_bottom.width = 5
cell.cell_format.border_left.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_left.fill_format.solid_fill_color.color =draw.Color.red
cell.cell_format.border_left.width = 5
cell.cell_format.border_right.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_right.fill_format.solid_fill_color.color = draw.Color.red
cell.cell_format.border_right.width = 5
# Συγχώνευση κελιών από (γραμμή 0, στήλη 0) έως (γραμμή 1, στήλη 1).
table.merge_cells(table.rows[0][0], table.rows[1][1], False)
# Προσθήκη κειμένου στο συγχωνευμένο κελί.
table.rows[0][0].text_frame.text = "Merged Cells"
# Αποθήκευση της παρουσίασης στον δίσκο.
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Αρίθμηση σε τυπικούς πίνακες
Σε έναν τυπικό πίνακα, η αρίθμηση των κελιών είναι απλή και βασίζεται στο μηδέν. Το πρώτο κελί σε έναν πίνακα έχει δείκτη (0, 0) (στήλη 0, γραμμή 0).
Για παράδειγμα, σε έναν πίνακα με 4 στήλες και 4 γραμμές, τα κελιά αριθμούνται ως εξής:
| (0, 0) | (1, 0) | (2, 0) | (3, 0) |
|---|---|---|---|
| (0, 1) | (1, 1) | (2, 1) | (3, 1) |
| (0, 2) | (1, 2) | (2, 2) | (3, 2) |
| (0, 3) | (1, 3) | (2, 3) | (3, 3) |
Το παρακάτω παράδειγμα Python δείχνει πώς να αναφέρετε κελιά χρησιμοποιώντας αυτήν την αρίθμηση που ξεκινά από το μηδέν:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Πρόσβαση στην πρώτη διαφάνεια.
slide = presentation.slides[0]
# Προσθήκη πίνακα με 4 στήλες και 4 γραμμές.
table = slide.shapes.add_table(100, 50, [50, 50, 50, 50], [30, 30, 30, 30])
for row_index in range(len(table.rows)):
for column_index in range(len(table.rows[row_index])):
cell = table.rows[row_index][column_index]
cell.text_frame.text = f"({column_index}, {row_index})"
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Πρόσβαση σε υπάρχοντα πίνακα
Αυτή η ενότητα εξηγεί πώς να εντοπίσετε και να εργαστείτε με έναν υπάρχοντα πίνακα σε μια παρουσίαση χρησιμοποιώντας το Aspose.Slides. Θα μάθετε πώς να βρείτε τον πίνακα σε μια διαφάνεια, να έχετε πρόσβαση στις γραμμές, τις στήλες και τα κελιά του και να ενημερώσετε το περιεχόμενο ή τη μορφοποίηση.
- Δημιουργήστε ένα στιγμιότυπο της κλάσης Presentation .
- Πάρτε μια αναφορά στη διαφάνεια που περιέχει τον πίνακα κατά το δείκτη της.
- Περιηγηθείτε σε όλα τα αντικείμενα Shape έως ότου βρείτε τον πίνακα.
- Χρησιμοποιήστε το αντικείμενο Table για να εργαστείτε με τον πίνακα.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Note
Αν η διαφάνεια περιέχει αρκετούς πίνακες, είναι καλύτερο να αναζητήσετε τον πίνακα που χρειάζεστε με βάση την ιδιότηταalternative_text.
Το παρακάτω παράδειγμα Python δείχνει πώς να έχετε πρόσβαση και να εργαστείτε με έναν υπάρχοντα πίνακα:
import aspose.pydrawing as draw
import aspose.slides as slides
# Δημιουργία της κλάσης Presentation για φόρτωση αρχείου PPTX.
with slides.Presentation("sample.pptx") as presentation:
# Πρόσβαση στην πρώτη διαφάνεια.
slide = presentation.slides[0]
table = None
# Επανάληψη μέσω των σχημάτων και αναφορά στον πρώτο πίνακα που βρέθηκε.
for shape in slide.shapes:
if isinstance(shape, slides.Table):
table = shape
break
# Ορισμός του κειμένου του πρώτου κελιού της πρώτης γραμμής.
if table is not None:
table.rows[0][0].text_frame.text = "Found"
# Αποθήκευση της τροποποιημένης παρουσίασης στον δίσκο.
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Εύρεση του κελιού που κατέχει ένα πλαίσιο κειμένου
Όταν ο γενικός κώδικας επεξεργασίας κειμένου λαμβάνει ένα TextFrame από έναν πίνακα, χρησιμοποιήστε την ιδιότητα TextFrame.parent_cell για να ανακτήσετε το ιδιοκτήτη Cell. Για ένα πλαίσιο κειμένου κελιού πίνακα, το TextFrame.parent_cell είναι ορισμένο και το TextFrame.parent_shape είναι None, ακόμη κι όταν ο ίδιος ο πίνακας είναι σχήμα.
Οι συντεταγμένες του κελιού είναι διαθέσιμες μέσω των μόνο για ανάγνωση ιδιοτήτων Cell.first_column_index και Cell.first_row_index. Η ιδιότητα TextFrame.parent_cell είναι επίσης μόνο για ανάγνωση: παρέχει πλοήγηση στον ιδιοκτήτη αλλά δεν αλλάζει την ιδιοκτησία. Πάντα ελέγξτε το επιστρεφόμενο κελί για None πριν το χρησιμοποιήσετε.
Για ένα πλήρες παράδειγμα που εντοπίζει ιδιοκτήτες κελιού πίνακα και σχήματος, συμπεριλαμβανομένων των σχημάτων που σχετίζονται με κόμβους SmartArt, δείτε Search and Replace Text .
Στοίχιση κειμένου σε πίνακες
Αυτή η ενότητα δείχνει πώς να ελέγχετε την τοποθέτηση του κειμένου μέσα σε κελιά πίνακα χρησιμοποιώντας το Aspose.Slides. Θα μάθετε να αγκυροβολείτε το κείμενο κάθετα σε ένα κελί και να αλλάζετε την κατεύθυνση με την οποία τρέχει το κείμενο.
- Δημιουργήστε ένα στιγμιότυπο της κλάσης Presentation .
- Πάρτε μια αναφορά στη διαφάνεια κατά το δείκτη της.
- Προσθέστε ένα αντικείμενο Table στη διαφάνεια.
- Αποκτήστε ένα αντικείμενο Cell από τον πίνακα.
- Κεντράρετε το κείμενο κάθετα στο κελί και ορίστε την κατεύθυνση του κειμένου.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Το παρακάτω παράδειγμα Python δείχνει πώς να ευθυγραμμίσετε το κείμενο σε έναν πίνακα:
import aspose.pydrawing as draw
import aspose.slides as slides
# Δημιουργία ενός στιγμιότυπου της κλάσης Presentation.
with slides.Presentation() as presentation:
# Πρόσβαση στην πρώτη διαφάνεια.
slide = presentation.slides[0]
# Ορισμός πλάτους στηλών και ύψους γραμμών.
column_widths = [40, 120, 120, 120]
row_heights = [100, 100, 100, 100]
# Προσθήκη σχήματος πίνακα στη διαφάνεια.
table = slide.shapes.add_table(100, 50, column_widths, row_heights)
table.rows[0][0].text_frame.text = "Numbers"
table.rows[1][0].text_frame.text = "10"
table.rows[2][0].text_frame.text = "20"
table.rows[3][0].text_frame.text = "30"
# Στοίχιση κειμένου στο κέντρο και ορισμός κάθετης προσανατολισμού.
cell = table.rows[0][0]
cell.text_anchor_type = slides.TextAnchorType.CENTER
cell.text_vertical_type = slides.TextVerticalType.VERTICAL270
# Αποθήκευση της παρουσίασης στον δίσκο.
presentation.save("aligned_cell.pptx", slides.export.SaveFormat.PPTX)
Ορισμός μορφοποίησης κειμένου στο επίπεδο πίνακα
Αυτή η ενότητα δείχνει πώς να εφαρμόζετε μορφοποίηση κειμένου στο επίπεδο του πίνακα στο Aspose.Slides ώστε κάθε κελί να κληρονομεί ένα συνεπές, ενοποιημένο στυλ. Θα μάθετε να ορίζετε μεγέθη γραμματοσειράς, στοίχιση και περιθώρια παγκοσμίως.
- Δημιουργήστε ένα στιγμιότυπο της κλάσης Presentation .
- Πάρτε μια αναφορά στη διαφάνεια κατά το δείκτη της.
- Προσθέστε ένα Table στη διαφάνεια.
- Ορίστε το μέγεθος γραμματοσειράς (ύψος γραμματοσειράς) για το κείμενο.
- Ορίστε την στοίχιση παραγράφου και τα περιθώρια.
- Ορίστε την κάθετη προσανατολισμό κειμένου.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Το παρακάτω παράδειγμα Python δείχνει πώς να εφαρμόσετε τις προτιμώμενες επιλογές μορφοποίησης στο κείμενο ενός πίνακα:
import aspose.pydrawing as draw
import aspose.slides as slides
# Δημιουργεί ένα στιγμιότυπο της κλάσης Presentation
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(20, 20, [100, 50, 30], [30, 50, 30])
# Ορισμός του μεγέθους γραμματοσειράς για όλα τα κελιά του πίνακα.
portion_format = slides.PortionFormat()
portion_format.font_height = 25
table.set_text_format(portion_format)
# Ορισμός κειμένου με στοίχιση δεξιά και δεξιό περιθώριο για όλα τα κελιά του πίνακα.
paragraph_format = slides.ParagraphFormat()
paragraph_format.alignment = slides.TextAlignment.RIGHT
paragraph_format.margin_right = 20
table.set_text_format(paragraph_format)
# Ορισμός κάθετης προσανατολισμού κειμένου για όλα τα κελιά του πίνακα.
text_frame_format = slides.TextFrameFormat()
text_frame_format.text_vertical_type = slides.TextVerticalType.VERTICAL
table.set_text_format(text_frame_format)
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Εφαρμογή ενσωματωμένων στυλ πινάκων
Το Aspose.Slides σάς επιτρέπει να μορφοποιείτε πίνακες χρησιμοποιώντας προκαθορισμένα στυλ απευθείας στον κώδικα. Το παράδειγμα παρουσιάζει τη δημιουργία ενός πίνακα, την εφαρμογή ενσωματωμένου στυλ και την αποθήκευση του αποτελέσματος — έναν αποδοτικό τρόπο για να διασφαλίσετε συνεπή, επαγγελματική μορφοποίηση.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(10, 10, [100, 150], [5, 5, 5])
table.style_preset = slides.TableStylePreset.DARK_STYLE1
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Κλείδωμα αναλογίας διαστάσεων πινάκων
Η αναλογία διαστάσεων ενός σχήματος είναι η αναλογία των διαστάσεών του. Το Aspose.Slides παρέχει την ιδιότητα aspect_ratio_locked, η οποία σας επιτρέπει να κλειδώσετε την αναλογία διαστάσεων για πίνακες και άλλα σχήματα.
Το παρακάτω παράδειγμα Python δείχνει πώς να κλειδώσετε την αναλογία διαστάσεων για έναν πίνακα:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(20, 20, [100, 50, 30], [30, 50, 30])
print(f"Lock aspect ratio set: {table.shape_lock.aspect_ratio_locked}")
table.shape_lock.aspect_ratio_locked = not table.shape_lock.aspect_ratio_locked
print(f"Lock aspect ratio set: {table.shape_lock.aspect_ratio_locked}")
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Συχνές Ερωτήσεις
Μπορώ να ενεργοποιήσω την ανάγνωση από δεξιά προς τα αριστερά (RTL) για ολόκληρο τον πίνακα και το κείμενο στα κελιά του;
Ναι. Ο πίνακας εκθέτει την ιδιότητα right_to_left , και οι παράγραφοι έχουν την ιδιότητα ParagraphFormat.right_to_left. Η χρήση και των δύο εξασφαλίζει τη σωστή σειρά RTL και την απόδοση μέσα στα κελιά.
Πώς μπορώ να εμποδίσω τους χρήστες να μετακινούν ή να αλλάζουν το μέγεθος ενός πίνακα στο τελικό αρχείο;
Χρησιμοποιήστε shape locks για να απενεργοποιήσετε τη μετακίνηση, την αλλαγή μεγέθους, την επιλογή κ.λπ. Αυτά τα κλειδώματα ισχύουν και για πίνακες.
Υποστηρίζεται η εισαγωγή μιας εικόνας μέσα σε κελί ως φόντο;
Ναι. Μπορείτε να ορίσετε μια picture fill για ένα κελί· η εικόνα θα καλύψει την περιοχή του κελιού ανάλογα με τη επιλεγμένη λειτουργία (τέντωμα ή επανάληψη).