在 Python 中创建和修改 PowerPoint ppt pptx

MS PowerPoint 是一种流行且常用的应用程序,可让您使用图表、图形、动画和其他元素创建交互式演示文稿。作为一名程序员,您可能需要从 Python 应用程序中自动化 PowerPoint 的演示文稿操作功能。在本文中,您将学习如何从头开始在 Python 中创建 PowerPoint PPT 或 PPTX 演示文稿。此外,我们将演示如何在 PPT 演示文稿中动态添加幻灯片、文本、表格、图像和图表。

Python 库创建 PowerPoint PPT PPTX - 免费下载

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 演示文稿中添加幻灯片、文本、表格、图表和图像。此外,您可以使用 documentation 探索 Aspose.Slides for Python 的其他功能。此外,请随时通过我们的 论坛 与我们分享您的疑问。

也可以看看