使用python-pptx库替换某些饼图中的数据会导致错误。但是,替换同一张幻灯片上另一个饼图中的数据不会引起任何问题。
如果仅替换第二个饼图中的数据(更改时遇到错误),它仍然有相同的问题。据我所知,没有理由这样做,因为我要放入的数据与那里已经存在的数据相同。我在运行python3.7.3和最新版本的python-pptx的Windows 10 Enterprise(版本10.0.15063 Build 15063)上。
但是,替换数据在第一个饼图中效果很好,所以我不知道可能是什么问题。它们都在同一张幻灯片上。
chart = slide.shapes[-2].chart
chart_data = ChartData()
ctg = []
for i in mcdata:
ctg.append(i+" - "+str(mcdata[i]))
chart_data.categories = tuple(ctg)
chart_data.add_series("",tuple([float(mcdata[i]) for i in mcdata]))
chart.replace_data(chart_data)
mcdata是这样的字典:
{"total": 268788, "rejected": 13103, "Virus Signature Detection": 416, "Anti-Spoofing Header Lockout": 66, "Anti-Spoofing Lockout": 470}
在要替换数据的饼图中,chart.plots[0].categories
如下所示:
{"Virus Signature Detection":416, "Anti-Spoofing Header Lockout": 66 ...}
等
chart.series[0].values
看起来像这样:
(416.0, 66.0, ...)
等
打开演示文稿时,出现错误消息“ PowerPoint在out.pptx中发现内容存在问题。PowerPoint可以尝试修复演示文稿。如果您信任演示文稿的来源,请单击“修复”。
当我单击“修复”时,它显示另一条消息:“ PowerPoint无法读取out.pptx [已修复]中的某些内容并将其删除。请检查您的演示文稿,以查看其余内容是否正常。”整个幻灯片是空白的。