Python读取Excel数据实现批量生成PPT

  • Post category:Python

下面是Python读取Excel数据实现批量生成PPT的完整实例教程。

准备工作

在开始编写Python代码前,我们需要准备以下工具和文件:

  1. 安装Python的openpyxlpython-pptx模块,可以使用pip命令进行安装:
pip install openpyxl python-pptx
  1. 需要读取数据的Excel文件,这里我们用example.xlsx作为示例文件。

  2. PPT模板文件,这里我们用template.pptx作为示例文件。

读取Excel数据

我们可以使用openpyxl模块读取Excel数据,具体步骤如下:

  1. 导入openpyxl模块:
import openpyxl
  1. 打开Excel文件:
wb = openpyxl.load_workbook('example.xlsx')
  1. 选择工作表:
sheet = wb['Sheet1']
  1. 读取单元格内容:
cell_value = sheet.cell(row=1, column=1).value

通过以上步骤,我们可以读取到Excel中指定单元格的内容。

生成PPT

我们可以使用python-pptx模块生成PPT,具体步骤如下:

  1. 导入python-pptx模块:
from pptx import Presentation
  1. 打开模板文件:
ppt = Presentation('template.pptx')
  1. 修改PPT内容:
slide = ppt.slides[0]  # 选择第1页
title = slide.shapes.title  # 获取标题
title.text = 'Hello, World!'  # 修改标题

通过以上步骤,我们可以修改模板文件中的内容。

批量生成PPT

结合以上两部分内容,我们可以实现批量生成PPT的功能。具体步骤如下:

  1. 读取Excel数据:
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
data = []  # 保存读取的数据
for row in range(2, sheet.max_row+1):  # 从第2行开始读取数据
    item = {}
    item['title'] = sheet.cell(row=row, column=1).value  # 读取标题
    item['content'] = sheet.cell(row=row, column=2).value  # 读取正文
    data.append(item)
  1. 遍历数据,生成PPT:
for item in data:
    # 打开模板文件
    ppt = Presentation('template.pptx')
    # 修改标题和正文
    slide = ppt.slides[0]
    title = slide.shapes.title
    content = slide.placeholders[1]  # 示例文件中第2个占位符是正文
    title.text = item['title']
    content.text = item['content']
    # 保存PPT
    ppt.save(f'{item["title"]}.pptx')  # 文件名为标题

通过以上步骤,我们可以针对Excel中每一行数据生成一个PPT文件,并根据标题命名文件。

示例说明

以下是两个示例,展示如何将读取Excel数据和生成PPT结合起来:

示例1:读取Excel文件中的数据生成PPT

import openpyxl
from pptx import Presentation

# 读取Excel数据
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
data = []
for row in range(2, sheet.max_row+1):
    item = {}
    item['title'] = sheet.cell(row=row, column=1).value
    item['content'] = sheet.cell(row=row, column=2).value
    data.append(item)

# 生成PPT
for item in data:
    ppt = Presentation('template.pptx')
    slide = ppt.slides[0]
    title = slide.shapes.title
    content = slide.placeholders[1]
    title.text = item['title']
    content.text = item['content']
    ppt.save(f'{item["title"]}.pptx')

示例2:在PPT模板文件中添加占位符

在生成PPT前,我们可以先在模板文件中添加占位符,这样程序会更加灵活,可以根据不同的需求进行修改。

比如我们可以在模板文件中添加一个占位符,用于添加图片。具体步骤如下:

  1. 在PPT模板文件中添加一个占位符(比如在第2页中添加一个图片占位符)。

  2. 使用python-pptx模块设置占位符的属性,比如位置和大小:

slide = ppt.slides[1]  # 选择第2页
picture = slide.shapes.add_picture('example.jpg', left=100, top=100, width=200, height=200)

以上代码中,add_picture方法用于添加一张图片,并设置其位置和大小。

综上所述,我们可以使用以上方法实现从Excel读取数据,生成PPT文件的功能。