在 Python 中創建和修改 PowerPoint ppt pptx

MS PowerPoint 是一種流行且常用的應用程序,可讓您使用圖表、圖形、動畫和其他元素創建交互式演示文稿。作為一名程序員,您可能需要從 Python 應用程序中自動執行 PowerPoint 的演示文稿操作功能。在本文中,您將學習如何從頭開始使用 Python 創建 PowerPoint PPT 或 PPTX 演示文稿。此外,我們還將演示如何在 PPT 演示文稿中動態添加幻燈片、文本、表格、圖像和圖表。

用於創建 PowerPoint PPT PPTX 的 Python 庫 - 免費下載

Aspose.Slides for Python via .NET 是一個強大的 Python 庫,它允許您在沒有 MS Office 的情況下創建和操作 PowerPoint PPT/PPTX。此外,您可以更新現有的演示文稿並將它們轉換為其他格式。您可以使用以下 pip 命令從 PyPI 安裝庫。

> pip install aspose.slides

在 Python 中創建 PowerPoint PPT

首先,讓我們創建一個包含默認添加的空白幻燈片的 PowerPoint 演示文稿。以下步驟展示瞭如何在 Python 中創建 PowerPoint PPT。

  • 首先,創建 Presentation 類的一個實例。
  • 然後,使用 Presentation.save(string, export.SaveFormat) 方法保存 PPT。

以下代碼示例演示如何在 Python 中創建 PowerPoint PPTX 文件。

import aspose.slides as slides

# 創建一個新的演示文稿
with slides.Presentation() as presentation:
    
    # 訪問默認幻燈片
    slide = presentation.slides[0]
    
    # 保存演示文稿
    presentation.save("create-presentation.pptx", slides.export.SaveFormat.PPTX)

在 Python 中打開 PowerPoint PPTX

您還可以打開現有演示文稿並更新其內容。為此,您只需在 Presentation 構造函數中提供演示文件的路徑。以下代碼示例顯示瞭如何在 Python 中打開現有的 PPT/PPTX 文件。

import aspose.slides as slides

# 打開演示文稿
with slides.Presentation("presentation.ppt") as presentation:
    
    # 訪問默認幻燈片
    slide = presentation.slides[0]
    
    # 保存演示文稿
    presentation.save("create-presentation.ppt", slides.export.SaveFormat.PPT)

Python:向 PowerPoint PPT 添加幻燈片

現在讓我們在之前創建的演示文稿中添加一張新幻燈片。您也可以先打開演示文稿,以相同的方式將幻燈片添加到現有演示文稿中(如 上一節 所示)。下面是用Python在PPT/PPTX演示文稿中添加幻燈片的步驟。

  • 首先,使用 Presentation 類創建一個新的(或加載現有的)演示文稿。
  • 然後,使用 Presentation.slides 屬性獲取幻燈片集合的引用。
  • 使用 Presentation.slides.addemptyslide(LayoutSlide) 方法添加幻燈片。
  • 最後,使用 Presentation.save(string, export.SaveFormat) 方法保存演示文稿。

以下代碼示例顯示瞭如何使用 Python 在 PowerPoint PPT 中添加幻燈片。

import aspose.slides as slides

# 創建一個新的演示文稿
with slides.Presentation() as pres:
    # 獲取幻燈片參考
    slds = pres.slides

    # 循環佈局幻燈片
   for i in range(len(pres.layout_slides)):
        # 將空幻燈片添加到幻燈片集合
        slds.add_empty_slide(pres.layout_slides[i])
        
    # 在新添加的幻燈片上做一些工作

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

在 Python 中創建 PowerPoint PPT 和添加文本

添加幻燈片後,我們可以繼續添加內容。首先,讓我們看看如何在 Python 中向演示文稿幻燈片添加文本。

  • 使用 Presentation 類創建新的(或加載現有的)PPT/PPTX。
  • 從 Presentation.slides 集合中獲取幻燈片的引用。
  • 使用 Slide.shapes.addautoshape(slides.ShapeType.RECTANGLE, int, int, int, int) 方法在幻燈片中添加一個新的自動形狀,並在對像中獲取形狀的引用。
  • 使用 addtextframe(string) 方法向形狀添加文本框。
  • 訪問文本框的默認段落。
  • 訪問段落的默認部分。
  • 向該部分添加文本並使用 Presentation.save(string, export.SaveFormat) 方法保存演示文稿。

下面的代碼示例展示瞭如何使用 Python 向 PPT 中的幻燈片添加文本。

import aspose.slides as slides

# 創建演示文稿
with slides.Presentation() as pres:
    # 訪問第一張幻燈片
    slide = pres.slides[0]

    # 添加一個類型設置為矩形的自選圖形
    ashp = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)

    # 將 TextFrame 添加到矩形
    ashp.add_text_frame(" ")

    # 訪問文本框
    txtFrame = ashp.text_frame

    # 為文本框創建段落對象
    para = txtFrame.paragraphs[0]

    # 為段落創建一個 Portion 對象
    portion = para.portions[0]

    # 設置文字
    portion.text = "Aspose TextBox"

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

下面是添加文字後的幻燈片截圖。

在python中的powerpoint ppt中添加文本

閱讀更多 關於在 PowerPoint 演示文稿中處理文本。

在 Python 中的 PowerPoint PPTX 中添加表格

表格是文檔不可或缺的一部分,也廣泛用於 PowerPoint 演示文稿中。 Aspose.Slides for Python 使您可以更輕鬆地在演示文稿中創建表格。那麼讓我們看看如何使用Python在PPT中創建表格。

  • 使用 Presentation 類創建新的(或加載現有的)PPT/PPTX。
  • 從 Presentation.slides 集合中獲取幻燈片的引用。
  • 定義具有寬度的列數組和具有高度的行。
  • 使用 Slide.shapes.addTable() 創建表並獲取對像中表的引用。
  • 遍歷單元格以應用格式。
  • 使用 Table.rows[][].textframe.text 屬性向單元格添加文本。
  • 使用 Presentation.save(string, export.SaveFormat) 方法保存演示文稿。

以下代碼示例演示如何在 Python 中的 PowerPoint PPTX 中創建表。

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

# 創建演示文稿
with slides.Presentation() as pres:
    # 訪問第一張幻燈片
    slide = pres.slides[0]

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

    # 將表格形狀添加到幻燈片
    tbl = slide.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].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.blue
            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.blue
            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.blue
            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.blue
            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)

    # 將文本添加到合併的單元格
    tbl.rows[0][0].text_frame.text = "Merged Cells"

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

以下是上面代碼片段的輸出。

用Python在PowerPoint ppt中添加表格

要探索與表格相關的其他功能,請訪問創建和操作表格

在 PowerPoint 演示文稿中創建圖表

以下是使用 Python 在 PowerPoint 演示文稿中添加圖表的步驟。

  • 使用 Presentation 類創建新的(或加載現有的)演示文稿。
  • 從 Presentation.slides 集合中獲取幻燈片的引用。
  • 使用 Slide.shapes.addChart(ChartType, single, single, single, single) 方法添加所需類型的圖表。
  • 訪問圖表數據工作表。
  • 清除所有默認系列和類別。
  • 添加新系列和類別。
  • 為圖表系列添加新的圖表數據。
  • 設置圖表系列的填充顏色。
  • 添加圖表系列標籤。
  • 將演示文稿另存為 PPTX 文件。

下面的代碼示例展示瞭如何使用 Python 在 PPT 中添加圖表。

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

# 創建演示文稿
with slides.Presentation() as pres:
    # 訪問第一張幻燈片
    slide = pres.slides[0]

    # 訪問第一張幻燈片
    sld = pres.slides[0]

    # 添加具有默認數據的圖表
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # 設置圖表標題
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # 將第一個系列設置為顯示值
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # 設置圖表數據表索引
    defaultWorksheetIndex = 0

    # 獲取圖表數據工作表
    fact = chart.chart_data.chart_data_workbook

    # 刪除默認生成的系列和類別
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # 添加新系列
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.type)

    # 添加新類別
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))

    # 獲取第一個圖表系列
    series = chart.chart_data.series[0]

    # 現在填充系列數據

    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # 設置系列的填充顏色
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.red

    # 採取第二個圖表系列
    series = chart.chart_data.series[1]

    # 現在填充系列數據
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 2, 30))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 2, 10))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 2, 60))

    # 設置系列的填充顏色
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # 第一個標籤將顯示類別名稱
    lbl = series.data_points[0].label
    lbl.data_label_format.show_category_name = True

    lbl = series.data_points[1].label
    lbl.data_label_format.show_series_name = True

    # 顯示第三個標籤的值
    lbl = series.data_points[2].label
    lbl.data_label_format.show_value = True
    lbl.data_label_format.show_series_name = True
    lbl.data_label_format.separator = "/"

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

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

在 Python 中的 PowerPoint pptx 中添加圖表

了解更多 關於在 PowerPoint 演示文稿中創建圖表的信息。

在 Python 中創建 PPT 和添加圖像

以下是使用 Python 在 PowerPoint PPTX 中添加圖像的步驟。

  • 使用 Presentation 類創建新的(或加載現有的)演示文稿。
  • 從 Presentation.slides 集合中獲取幻燈片的引用。
  • 使用 open(string, string) 方法從文件中打開圖像。
  • 使用 Presentation.images.addimage() 方法將圖像添加到演示文稿的圖像集合中。
  • 使用 Slide.shapes.addpictureframe() 方法將圖像添加到幻燈片。
  • 使用 Presentation.save(string, export.SaveFormat) 方法保存演示文稿。

以下代碼示例演示如何使用 Python 將圖像添加到 PowerPoint 演示文稿。

import aspose.slides as slides

# 創建演示文稿
with slides.Presentation() as pres:
    # 訪問第一張幻燈片
    slide = pres.slides[0]

    # 從文件加載圖像
    with open("python-logo.png", "rb") as in_file:
      
        # 將圖像添加到演示文稿的圖像集合
        image = pres.images.add_image(in_file)

        # 將圖像添加到幻燈片
        slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

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

以下是上述代碼示例的輸出。

用Python在PowerPoint PPT中添加圖片

在 PowerPoint 演示文稿中閱讀有關 使用圖像 的更多信息。

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

您可以通過 .NET 使用 Aspose.Slides for Python,沒有評估限制,只需獲得免費臨時許可證

結論

在本文中,您學習瞭如何使用 Python 從頭開始創建 PowerPoint PPT/PPTX。我們已經演示瞭如何在 PowerPoint PPT/PPTX 演示文稿中添加幻燈片、文本、表格、圖表和圖像。此外,您可以使用 文檔 探索 Aspose.Slides for Python 的其他功能。另外,請隨時通過我們的 論壇 與我們分享您的疑問。

也可以看看