Πώς να εργαστείτε με τα δίσκια στο Python

Πώς να εργαστείτε με τα δίσκια στο Python

Aspose.Slides FOSS for Python supports creating tables on slides with configurable column widths and row heights. This guide shows how to add a table, populate it with data, and apply basic text formatting to cells.

Βήμα προς βήμα οδηγός

Βήμα 1: Εγκατάσταση του πακέτου

pip install aspose-slides-foss

Βήμα 2: Δημιουργήστε ή ανοίξτε μια παρουσίαση

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    # ... add table ...
    prs.save("table.pptx", SaveFormat.PPTX)

Βήμα 3: Ορισμός των κελιών πλάτους και τα ύψη στήλης

Οι πίνακες απαιτούν ρητά πλάτους στήλης και ύψους γραμμής σε σημεία (1 σημείο = 1/72 ίντσες). Ένα τυποποιημένο χαλί είναι 960 σημείων ευρύς και 540 σημείου ψηλό.

col_widths = [200.0, 150.0, 150.0]   # 3 columns: 200pt + 150pt + 150pt
row_heights = [45.0, 40.0, 40.0]     # 3 rows: 45pt header + 40pt data rows

Βήμα 4: Προσθέστε το τραπέζι

slide.shapes.add_table(x, y, col_widths, row_heights) Δημιουργεί το τραπέζι στη θέση (x, y):

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    col_widths = [200.0, 150.0, 150.0]
    row_heights = [45.0, 40.0, 40.0]
    table = slide.shapes.add_table(50, 100, col_widths, row_heights)

    prs.save("table.pptx", SaveFormat.PPTX)

Βήμα 5: Εισάγετε κείμενο κυττάρου

Μέσω των κυττάρων πρόσβασης table.rows[row_index][col_index] και να αποστέλλουν το κείμενο μέσω .text_frame.text:

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    col_widths = [200.0, 150.0, 150.0]
    row_heights = [45.0, 40.0, 40.0]
    table = slide.shapes.add_table(50, 100, col_widths, row_heights)

    # Header row (row 0)
    headers = ["Product", "Units Sold", "Revenue"]
    for col, header in enumerate(headers):
        table.rows[0][col].text_frame.text = header

    # Data rows
    data = [
        ["Widget A", "1,200", "$24,000"],
        ["Widget B", "850", "$17,000"],
    ]
    for row_idx, row_data in enumerate(data):
        for col, cell_text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = cell_text

    prs.save("sales-table.pptx", SaveFormat.PPTX)

Βήμα 6: Καθορίστε το κείμενο κύτταρο κεφαλής

Εφαρμόστε το θάρρος διατύπωση σε κύτταρα επικεφαλής χρησιμοποιώντας PortionFormat:

from aspose.slides_foss import NullableBool, FillType
from aspose.slides_foss.drawing import Color

for col in range(len(headers)):
    cell = table.rows[0][col]
    portions = cell.text_frame.paragraphs[0].portions
    if portions:
        fmt = portions[0].portion_format
        fmt.font_bold = NullableBool.TRUE
        fmt.fill_format.fill_type = FillType.SOLID
        fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 255, 255, 255)

ΕΠΙΛΗΜΑΤΙΚΟ ΔΡΑΣΤΗΡΙΟ ΠΡΟΒΛΕΜΟ

import aspose.slides_foss as slides
from aspose.slides_foss import NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

data_rows = [
    ["North", "$1.2M", "+8%"],
    ["South", "$0.9M", "+4%"],
    ["East",  "$1.5M", "+12%"],
    ["West",  "$0.7M", "+2%"],
]
headers = ["Region", "Revenue", "Growth"]

with slides.Presentation() as prs:
    slide = prs.slides[0]

    col_widths = [180.0, 140.0, 120.0]
    row_heights = [45.0] + [38.0] * len(data_rows)

    table = slide.shapes.add_table(60, 80, col_widths, row_heights)

    # Header row
    for col, text in enumerate(headers):
        cell = table.rows[0][col]
        cell.text_frame.text = text
        if cell.text_frame.paragraphs and cell.text_frame.paragraphs[0].portions:
            fmt = cell.text_frame.paragraphs[0].portions[0].portion_format
            fmt.font_bold = NullableBool.TRUE

    # Data rows
    for row_idx, row_data in enumerate(data_rows):
        for col, text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = text

    prs.save("regional-revenue.pptx", SaveFormat.PPTX)

print("Saved regional-revenue.pptx")

Κοινά προβλήματα και τακτοποιήσεις

IndexError Όταν η πρόσβαση table.rows[row][col]

Οι δείκτες στήλης και στίχους είναι μηδενικές. αν ορίζετε row_heights Με 3 στοιχεία, οι έγκυροι δείκτες γραμμής είναι 0, 1, 2.

Το κείμενο δεν εμφανίζεται στο αποθηκευμένο αρχείο

Πάντα να αναθέτουμε μέσα από .text_frame.text,Όχι μέσα από .text Αμέσως στο αντικείμενο του κυττάρου:

# Correct
table.rows[0][0].text_frame.text = "Header"

# Wrong: AttributeError or silent failure
table.rows[0][0].text = "Header"

Η θέση του τραπέζου είναι εκτός της σάκας

Δείτε αυτό x + sum(col_widths) <= 960 και y + sum(row_heights) <= 540 Για ένα τυποποιημένο slide.


Συχνές ερωτήσεις

Μπορώ να συγχωνεύσω τα τραπεζογραμμάτια;?

Η συγχώνευση κυττάρων δεν υποστηρίζεται σε αυτή την έκδοση.

Μπορώ να εφαρμόσω ένα χρώμα πλάτους πίνακα;?

Εφαρμόστε τη φόρμα πληρώσεως σε κάθε ατομική κελία:

for row_idx in range(len(table.rows)):
    for col_idx in range(len(table.rows[row_idx])):
        cell = table.rows[row_idx][col_idx]
        cell.fill_format.fill_type = FillType.SOLID
        cell.fill_format.solid_fill_color.color = Color.from_argb(255, 240, 248, 255)

Μπορώ να βάλω τα στυλ των κυττάρων;?

Τα κελιά των συνόρων είναι προσβάσιμα μέσω table.rows[row][col].border_* Αναφέρεται στην αναφορά API για την πλήρη λίστα των χαρακτηριστικών του μορφής σύνορα.


Δείτε επίσης

 Ελληνικά