下面从几个例子来感受一下python-pptx
详细的函数调用及表现请参考 API documentation
1. “Hello World”
from pptx import Presentation
# 创建一个演示文稿对象
prs = Presentation()
# 添加一个幻灯片(使用默认的标题幻灯片布局)
slide_layout = prs.slide_layouts[0] # 0 是标题幻灯片布局
slide = prs.slides.add_slide(slide_layout)
# 设置幻灯片标题和副标题
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Hello, World!"
subtitle.text = "This is my first PowerPoint created with python-pptx!"
# 保存演示文稿
prs.save('hello_world.pptx')
if __name__ == "__main__":
print("PowerPoint 文件已创建:hello_world.pptx")
输出
编辑
2. 项目符号的幻灯片
from pptx import Presentation
# 创建一个演示文稿对象
prs = Presentation()
# 添加一个幻灯片(使用标题和内容布局)
slide_layout = prs.slide_layouts[1] # 1 是标题和内容布局
slide = prs.slides.add_slide(slide_layout)
# 设置幻灯片标题
title = slide.shapes.title
title.text = "Bullet Slide Example"
# 获取内容占位符
content = slide.shapes.placeholders[1].text_frame
# 添加项目符号列表
content.text = "Main Topic" # 第一行是主标题
# 添加子项目
p = content.add_paragraph()
p.text = "First bullet point"
p.level = 0 # 第一级项目符号
p = content.add_paragraph()
p.text = "Second bullet point"
p.level = 0 # 第一级项目符号
p = content.add_paragraph()
p.text = "Sub-point of second bullet"
p.level = 1 # 第二级项目符号(缩进)
p = content.add_paragraph()
p.text = "Third bullet point"
p.level = 0 # 第一级项目符号
# 保存演示文稿
prs.save('bullet_slide_example.pptx')
if __name__ == "__main__":
print("PowerPoint 文件已创建:bullet_slide_example.pptx")
输出
编辑
3. add_textbox() 幻灯片
# 导入所需的库
from pptx import Presentation # 用于创建和操作 PowerPoint 文件
from pptx.util import Inches, Pt # 用于设置尺寸(英寸)和字体大小(磅)
# 创建一个演示文稿对象
prs = Presentation()
# 选择一个空白幻灯片布局(布局索引 6 是空白布局)
blank_slide_layout = prs.slide_layouts[6]
# 添加一张空白幻灯片
slide = prs.slides.add_slide(blank_slide_layout)
# 设置文本框的位置和大小
left = top = width = height = Inches(1) # 距离左侧和顶部 1 英寸,宽度和高度为 1 英寸
# 在幻灯片上添加一个文本框
txBox = slide.shapes.add_textbox(left, top, width, height)
# 获取文本框的文本框架(用于添加文本)
tf = txBox.text_frame
# 设置文本框的第一行文本
tf.text = "This is text inside a textbox"
# 添加第二段文本
p = tf.add_paragraph()
p.text = "This is a second paragraph that's bold"
p.font.bold = True # 设置第二段文本为粗体
# 添加第三段文本
p = tf.add_paragraph()
p.text = "This is a third paragraph that's big"
p.font.size = Pt(40) # 设置第三段文本的字体大小为 40 磅
# 保存演示文稿为 PowerPoint 文件
prs.save('add_textbox.pptx')
输出
编辑
4. add_picture() 幻灯片
# 导入所需的库
from pptx import Presentation # 用于创建和操作 PowerPoint 文件
from pptx.util import Inches # 用于设置尺寸(英寸)
# 图片路径
img_path = 'car.jpg' # 替换为你的图片路径
# 创建一个演示文稿对象
prs = Presentation()
# 选择一个空白幻灯片布局(布局索引 6 是空白布局)
blank_slide_layout = prs.slide_layouts[6]
# 添加一张空白幻灯片
slide = prs.slides.add_slide(blank_slide_layout)
# 设置第一张图片的位置和高度
left = top = Inches(0.5) # 距离左侧和顶部 0.5 英寸
height = Inches(2) # 设置图片高度为 2 英寸(宽度会按比例缩放)
# 在幻灯片上添加第一张图片(自定义高度)
pic = slide.shapes.add_picture(img_path, left, top, height=height)
# 设置第二张图片的位置和高度
left = Inches(4) # 距离左侧 4 英寸
top = Inches(3.5) # 距离顶部 3.5 英寸
height = Inches(3) # 设置图片高度为 3 英寸(宽度会按比例缩放)
# 在幻灯片上添加第二张图片(自定义高度)
slide.shapes.add_picture(img_path, left, top, height=height)
# 保存演示文稿为 PowerPoint 文件
prs.save('add_picture.pptx')
if __name__ == "__main__":
print("PowerPoint 文件已创建:add_picture.pptx")
输出
编辑
5. add_shape() 幻灯片
# 导入所需的库
from pptx import Presentation # 用于创建和操作 PowerPoint 文件
from pptx.enum.shapes import MSO_SHAPE # 提供预定义的形状类型
from pptx.util import Inches # 用于设置尺寸(英寸)
# 创建一个演示文稿对象
prs = Presentation()
# 选择一个仅标题的幻灯片布局(布局索引 5 是仅标题布局)
title_only_slide_layout = prs.slide_layouts[5]
# 添加一张仅标题的幻灯片
slide = prs.slides.add_slide(title_only_slide_layout)
# 获取幻灯片的形状集合
shapes = slide.shapes
# 设置幻灯片的标题
shapes.title.text = 'Adding an AutoShape'
# 定义第一个形状的位置和大小
left = Inches(0.93) # 距离左侧 0.93 英寸
top = Inches(3.0) # 距离顶部 3.0 英寸
width = Inches(1.75) # 形状宽度为 1.75 英寸
height = Inches(1.0) # 形状高度为 1.0 英寸
# 添加一个五边形形状
shape = shapes.add_shape(MSO_SHAPE.PENTAGON, left, top, width, height)
shape.text = 'Step 1' # 设置形状内的文本
# 调整下一个形状的位置
left = left + width - Inches(0.4) # 将左侧位置向右移动(减去 0.4 英寸以重叠部分形状)
width = Inches(2.0) # 设置 Chevron 形状的宽度为 2.0 英寸(Chevron 形状需要更多宽度以保持视觉平衡)
# 循环添加 Chevron 形状
for n in range(2, 6): # 从 Step 2 到 Step 5
shape = shapes.add_shape(MSO_SHAPE.CHEVRON, left, top, width, height)
shape.text = 'Step %d' % n # 设置形状内的文本
left = left + width - Inches(0.4) # 更新左侧位置
# 保存演示文稿为 PowerPoint 文件
prs.save('auto-shape.pptx')
if __name__ == "__main__":
print("PowerPoint 文件已创建:auto-shape.pptx")
输出
编辑
6. add_table() 幻灯片
# 导入所需的库
from pptx import Presentation # 用于创建和操作 PowerPoint 文件
from pptx.util import Inches # 用于设置尺寸(英寸)
# 创建一个演示文稿对象
prs = Presentation()
# 选择一个仅标题的幻灯片布局(布局索引 5 是仅标题布局)
title_only_slide_layout = prs.slide_layouts[5]
# 添加一张仅标题的幻灯片
slide = prs.slides.add_slide(title_only_slide_layout)
# 获取幻灯片的形状集合
shapes = slide.shapes
# 设置幻灯片的标题
shapes.title.text = 'Adding a Table'
# 定义表格的行数和列数
rows = cols = 2 # 2 行 2 列的表格
# 定义表格的位置和大小
left = top = Inches(2.0) # 距离左侧和顶部 2.0 英寸
width = Inches(6.0) # 表格宽度为 6.0 英寸
height = Inches(0.8) # 表格高度为 0.8 英寸
# 在幻灯片上添加表格
table = shapes.add_table(rows, cols, left, top, width, height).table
# 设置列宽
table.columns[0].width = Inches(2.0) # 第一列宽度为 2.0 英寸
table.columns[1].width = Inches(4.0) # 第二列宽度为 4.0 英寸
# 写入表头
table.cell(0, 0).text = 'Name' # 第一行第一列
table.cell(0, 1).text = 'Number' # 第一行第二列
# 写入表格内容
table.cell(1, 0).text = 'Pen' # 第二行第一列
table.cell(1, 1).text = '10' # 第二行第二列
# 保存演示文稿为 PowerPoint 文件
prs.save('add_table.pptx')
# 主程序入口
if __name__ == "__main__":
print("PowerPoint 文件已创建:add_table.pptx")
输出
编辑
通过以上的例子你应该对python-pptx的使用有个初步的了解。下面就让我们开始我们的python-pptx探索之旅吧