You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用python-pptx在PPT表格单元格中插入图片?

在python-pptx的表格单元格中添加图片的方法

我懂你现在的困扰——之前用table.cell(0, 1).text = 'cell text'只能加纯文本,要在单元格里放图片得换个思路,因为图片属于内嵌形状(inline shape),得通过单元格的文本框(text frame)来添加,不能直接用纯文本的方式设置。

下面是具体的实现步骤和代码示例:

核心逻辑

表格的每个单元格本质是一个带文本框的形状,你需要在这个文本框的段落中,添加一个包含图片的「运行(run)」,这才是插入图片的正确路径。

完整代码示例

from pptx import Presentation
from pptx.util import Inches
from pptx.enum.text import PP_ALIGN  # 用于设置对齐方式(可选)

# 1. 创建/打开演示文稿
prs = Presentation()
slide_layout = prs.slide_layouts[5]  # 选空白幻灯片布局
slide = prs.slides.add_slide(slide_layout)

# 2. 先创建一个表格(示例:2行2列)
left = Inches(1)
top = Inches(1)
width = Inches(4)
height = Inches(2)
table = slide.shapes.add_table(rows=2, cols=2, left=left, top=top, width=width, height=height).table

# 3. 给目标单元格添加图片
target_cell = table.cell(0, 1)

# 可选:清空单元格原有文本内容
target_cell.text = ""

# 获取单元格的文本框对象
text_frame = target_cell.text_frame

# 添加一个新段落(如果单元格已有段落,也可以直接复用)
p = text_frame.add_paragraph()

# 可选:设置段落对齐,让图片在单元格里居中显示
p.alignment = PP_ALIGN.CENTER

# 在段落的run中插入图片
run = p.add_run()
# 替换为你的图片路径,width/height二选一即可,另一个会按比例自动缩放
pic = run.add_picture("your_image.png", width=Inches(1.5))

# 可选:调整单元格大小适配图片
target_cell.width = Inches(2)
target_cell.height = Inches(1.2)

# 保存演示文稿
prs.save("table_with_image.pptx")

关键细节提醒

  • 为什么不能用cell.text?因为cell.text只能处理纯文本,无法承载图片这类富媒体元素。
  • 图片缩放:add_picture()只需要指定widthheight其中一个参数,python-pptx会自动按图片原始比例计算另一个维度,避免拉伸变形。
  • 单元格适配:如果图片超出单元格显示范围,记得调整cell.widthcell.height,确保图片完整展示。
  • 对齐优化:通过段落的alignment属性,能让图片在单元格内居中、左对齐或右对齐,让排版更美观。

内容的提问来源于stack exchange,提问作者Navdeep Singh

火山引擎 最新活动