Python Pptx - 修改现有表格

4

我对python-pptx模块非常陌生,敬请谅解。我想修改一个已存在的PowerPoint文件中的表格,但在文档中没有找到可以用来实现这一点的方法。

我看到了可以使用add_table()方法创建一个新表格,但我只需要使用来自Pandas数据帧的数据修改一个已有的表格。

2个回答

3
Saleh所提到的, 一旦你获得了shape_id,你可以像这样修改表格单元格:
对于slide 0id = 6的形状,将第一个单元格(0,0)改为Pina Colada:
Presentation('yourpowerpoint.pptx').slides[0].shapes[6].table.cell(0,0).text= 'Pina Colada'

1

python-pptx中,有多种选择形状的方法。 最好的方法是知道形状的ID,您可以通过打开xml并查找形状或循环遍历幻灯片中的所有形状来获取ID。但是,即使不知道其ID,仍然可以选择该形状。

如果您知道形状的ID,则可以搜索幻灯片以查找该形状的ID,类似这样的操作将返回所需的形状。

for shape in slide.shapes:
    if shape.shape_id == shape_id:
        return shape

如果您不知道形状ID,有几种方法可以获取该形状,它们都有点巧妙,但都能起作用。
  • 如果幻灯片中只有一个该形状类型的实例,则很简单,只需在幻灯片中搜索具有该形状类型的形状即可。
for shape in slide.shapes:
    if shape.shape_type == your_shape_type:
        return shape
  • 如果幻灯片中有多个相同类型的形状(例如多个表格),那么情况会更加复杂。您可以设置一些标识特征(例如放置占位文本)。例如,我设置了一个带有占位系列名称的图表,这就是我在Python中选择它的方式。
for shape in slide.shapes:
    if shape.has_chart:
        if str([s.name for s in shape.chart.series][0]) == series_name:
            return shape

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接