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.

स्टेप बाय स्टेप गाइड

Step 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 इंच)। एक मानक स्लाइड की चौड़ाई 720 पॉइंट्स और ऊँचाई 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) <= 720 और y + sum(row_heights) <= 540 एक मानक स्लाइड के लिए।.


अक्सर पूछे जाने वाले प्रश्न

क्या मैं टेबल की कोशिकाओं को मर्ज कर सकता हूँ?

इस संस्करण में सेल मर्जिंग समर्थित नहीं है।.

क्या मैं पूरी टेबल पर पृष्ठभूमि रंग लागू कर सकता हूँ?

प्रत्येक व्यक्तिगत सेल पर फ़िल फ़ॉर्मेटिंग लागू करें:

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 रेफ़रेंस देखें।.


संबंधित देखें

 हिन्दी