在 PowerPoint Python 中創建和操作表格

表格通常用於以行和列的形式組織數據。它們使查看、理解和分析數據變得更加容易。在各種情況下,您必須在 PowerPoint 演示文稿中插入表格。為了以編程方式實現這一點,本文介紹瞭如何使用 Python 在 PowerPoint PPT 或 PPTX 中創建表格。此外,您將學習如何訪問、修改和格式化現有的 PowerPoint 表格。

用於創建和操作 PowerPoint 表格的 Python 庫

Aspose.Slides for Python 提供了一系列功能來創建、操作和轉換 PowerPoint 和 OpenOffice 文檔。我們將使用這個庫在我們的 PowerPoint 演示文稿中創建、編輯和操作表格。您可以使用以下命令從 PyPI 安裝庫。

> pip install aspose.slides

使用 Python 在 PowerPoint PPT 中創建表格

以下是用 Python 在 PowerPoint PPT/PPTX 中創建表格的步驟。

  • 首先,使用 Presentation 類加載或創建 PPT/PPTX 演示文稿。
  • 然後,獲取要添加表格的所需幻燈片的參考。
  • 之後,創建兩個數組分別定義列和行的寬度和高度。
  • 使用 ISlide.shapes.addtable() 方法在幻燈片上插入一個新表格並獲取其引用。
  • 啟動循環以遍歷表的行。
  • 啟動嵌套循環以遍歷表格的單元格,並在每次迭代中執行以下操作。
    • 使用 Table.rows[row][cell].textframe.text 屬性設置單元格的文本。
    • 如果需要,設置單元格的邊框樣式。
  • 最後,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。

以下代碼示例顯示如何在 PowerPoint 演示文稿中創建表格。

import aspose.slides as slides
import aspose.pydrawing as drawing

# 創建一個新的演示文稿(加載現有的演示文稿,在構造函數中提供文件的路徑)
with slides.Presentation() as pres:
    # 訪問第一張幻燈片
    sld = pres.slides[0]

    # 定義具有寬度的列和具有高度的行
    dblCols =  [50, 50, 50] 
    dblRows =  [50, 30, 30, 30, 30] 

    # 將表格形狀添加到幻燈片
    tbl = sld.shapes.add_table(100, 50, dblCols, dblRows)

    # 為每個單元格設置邊框格式
   for row in range(len(tbl.rows)):
       for cell in range(len(tbl.rows[row])):
            
            # 添加文字
            tbl.rows[row][cell].text_frame.text = "Cell_" + cell

            # 設置邊框
            tbl.rows[row][cell].cell_format.border_top.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_top.fill_format.solid_fill_color.color = drawing.Color.red
            tbl.rows[row][cell].cell_format.border_top.width = 5

            tbl.rows[row][cell].cell_format.border_bottom.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_bottom.fill_format.solid_fill_color.color= drawing.Color.red
            tbl.rows[row][cell].cell_format.border_bottom.width =5

            tbl.rows[row][cell].cell_format.border_left.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_left.fill_format.solid_fill_color.color =drawing.Color.red
            tbl.rows[row][cell].cell_format.border_left.width = 5

            tbl.rows[row][cell].cell_format.border_right.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_right.fill_format.solid_fill_color.color = drawing.Color.red
            tbl.rows[row][cell].cell_format.border_right.width = 5
        
    # 合併第 1 行的單元格 1 和 2
    tbl.merge_cells(tbl.rows[0][0], tbl.rows[1][1], False)

    # 添加文字 to the merged cell
    tbl.rows[0][0].text_frame.text = "Merged Cells"

    # 將 PPTX 保存到磁盤
    pres.save("table.pptx", slides.export.SaveFormat.PPTX)

以下屏幕截圖顯示了我們使用上述代碼創建的表。

使用 Python 在 PowerPoint PPT 中創建表格

使用 Python 在 PowerPoint PPT 中編輯表格

您還可以通過從演示幻燈片訪問現有表格來修改它。這是您可以訪問 PowerPoint 表格並在 Python 中編輯其內容或外觀的方法。

  • 首先,使用 Presentation 類加載現有的 PowerPoint PPT/PPTX 文件。
  • 然後,將所需幻燈片的引用獲取到一個對像中。
  • 為表創建一個對象並用 None 初始化它。
  • 使用 ISlide.shapes 集合遍歷幻燈片中的所有形狀。
  • 過濾表格類型的形狀。
  • 根據需要操作表格。
  • 最後,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。

下面的代碼示例展示瞭如何使用 Python 在 PowerPoint PPT 中編輯表格。

# 負載演示
with slides.Presentation("table.pptx") as pres:
    # 訪問第一張幻燈片
    sld = pres.slides[0]

    # 初始化空 TableEx
    tbl = None

    # 遍歷形狀並設置對找到的表格的引用
   for shp in sld.shapes:
        if type(shp) is slides.Table:
            tbl = shp

    # 設置第二行第一列的文本
    tbl.rows[0][1].text_frame.text = "New"

    # 將 PPTX 保存到磁盤
    pres.save("table1_out.pptx", slides.export.SaveFormat.PPTX)

在 Python 中格式化 PowerPoint 表格中的文本

Aspose.Slides for Python 還允許您將格式應用於表格內的文本。以下步驟顯示瞭如何實現這一目標。

  • 首先,使用 Presentation 類加載現有演示文稿。
  • 然後,將所需幻燈片的引用獲取到一個對像中。
  • 從幻燈片中獲取所需表格的引用到對像中。
  • 使用 PortionFormat、ParagraphFormat 和 TextFrameFormat 對象設置格式。
  • 使用 Table.settextformat() 方法為表格指定格式。
  • 最後,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。

以下代碼示例演示如何使用 Python 在 PowerPoint 中設置表格內文本的格式。

import aspose.slides as slides

# 創建演示文稿
with slides.Presentation() as presentation:

    # 添加表
    someTable = presentation.slides[0].shapes.add_table(100, 100, [100, 50, 30], [30, 50, 30])

    # 設置表格單元格的字體高度
    portionFormat = slides.PortionFormat()
    portionFormat.font_height = 25
    someTable.set_text_format(portionFormat)

    # 在一次調用中設置表格單元格的文本對齊方式和右邊距
    paragraphFormat = slides.ParagraphFormat()
    paragraphFormat.alignment = slides.TextAlignment.RIGHT
    paragraphFormat.margin_right = 20
    someTable.set_text_format(paragraphFormat)

    # 設置表格單元格的文本垂直類型
    textFrameFormat = slides.TextFrameFormat()
    textFrameFormat.text_vertical_type = slides.TextVerticalType.VERTICAL
    someTable.set_text_format(textFrameFormat)

    # 保存演示文稿
    presentation.save("table-formatting.pptx", slides.export.SaveFormat.PPTX)

在 Python 中鎖定 PowerPoint 表格的縱橫比

您還可以使用 Python 鎖定 PowerPoint 演示文稿中表格的縱橫比,如以下步驟所示。

  • 首先,使用 Presentation 類加載現有演示文稿。
  • 然後,將所需幻燈片的引用獲取到一個對像中。
  • 創建表或將現有表的引用檢索到對像中。
  • 使用 Table.shapelock.aspectratiolocked 屬性鎖定縱橫比。
  • 最後,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。

下面的代碼示例演示如何在 PowerPoint PPTX 中鎖定表格的縱橫比。

import aspose.slides as slides

# 創建演示文稿
with slides.Presentation() as pres:
    # 添加表格
    table = pres.slides[0].shapes.add_table(100, 100, [100, 50, 30], [30, 50, 30])
    print("鎖定縱橫比 set: {0}".format(table.shape_lock.aspect_ratio_locked))
    
    # 鎖定縱橫比
    table.shape_lock.aspect_ratio_locked = not table.shape_lock.aspect_ratio_locked
    print("鎖定縱橫比 set: {0}".format(table.shape_lock.aspect_ratio_locked))

    # 保存演示文稿
    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

用於創建 PowerPoint 表格的 Python 庫 - 獲取免費許可證

通過獲得免費的臨時許可,您可以不受評估限制地使用 Aspose.Slides for Python。

結論

表格是文檔的組成部分,用於組織數據。在本文中,您了解瞭如何使用 Python 在 PowerPoint PPT 和 PPTX 中創建表格。此外,您還了解瞭如何以編程方式訪問和操作 PowerPoint 演示文稿中的現有表格。此外,您還可以訪問 文檔 來探索更多關於 Aspose.Slides for Python 的信息。此外,您可以通過我們的 論壇 提問。

也可以看看

信息:使用 Aspose JPG 轉 PPTPNG 轉 PPT 轉換器,您可以從簡單的圖像生成 PowerPoint 演示文稿。