替换饼图数据会导致损坏

时间:2019-07-01 13:45:39

标签: python powerpoint python-pptx

使用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 [已修复]中的某些内容并将其删除。请检查您的演示文稿,以查看其余内容是否正常。”整个幻灯片是空白的。

0 个答案:

没有答案