【发布时间】:2026-02-14 02:55:01
【问题描述】:
我想更新现有 powerpoint 演示幻灯片的图表数据,有 2 个图表,即条形图和饼图。我成功地更新了条形图,因为它是我的内容幻灯片占位符上的第一个元素。现在我不确定如何更新第二张图表,即同一张幻灯片上的饼图。 我的代码如下:
prs = Presentation("Request_Slide.pptx")
slide = prs.slides[0]
for shape in slide.placeholders:
print('%d %s' %(shape.placeholder_format.idx, shape.name))
上面我得到了以下回复:
0 Title 1
1 Content Placeholder 5
在此帮助下,我设法导航到 Slide[0] 上的第一个图表并更新了其图表数据,但是我正在努力导航到内容占位符中存在的第二个图表。任何建议都会有很大帮助,并提前致谢。
【问题讨论】:
-
占位符只是形状的一种特殊类别,并非所有形状都是占位符。尝试改用
for shape in slide.shapes,看看如何以这种方式识别第二张图表。它可能是第二张图表被添加为自己的“独立”形状。据我所知,一个占位符不能直接容纳两个图表。 -
@Scanny:使用 Slide.shapes 我得到了所有的形状,但是我发现我无法按照以下代码访问形状索引:prs = Presentation("A-Sample_slide.pptx" ) slide1 = prs.slides[0] for shape in slide1.shapes: print('%d %s' % (prs.slides.index(shape), shape.name)) 相反,我收到如下错误消息:“ raise ValueError ('%s is not in slide collection' % slide) ValueError:
is not in slide collection"
标签: python-3.x charts python-pptx