如何使用Python从Excel中提取数据并将其传输到Powerpoint上的现有图表



每周,我都会收到相同的excel文件,但更新的值不同。我通常做的是从excel中手动提取这些值,并将它们放入Powerpoint中的相同图表中进行更新。例如,如果我得到7月第2周的更新值,我会得到这些值,打开PowerPoint,打开图形,并插入一个具有相应值的新日期。这通常需要我每周几个小时的时间。有没有什么方法可以让我运行一个脚本,在下载excel文件后将其值添加到我现有PowerPoint文件上的表格和图形中?如果是的话,我该怎么做?我可以使用哪些库?或者有更好的方法可以让我自动化吗?

是的,这是python-pptx的一个相当常见的用例。你必须分别搜索每一个更精细的点,但这里有一个我见过很多次的通用策略:

  1. 使用openpyxl从Excel工作簿(.xlsx文件(中读取所需的值。

  2. 使用";模板"。pptx文件,除了可更新的值不是最新的之外,它看起来像你每周想要的最终产品。这可能是你为此保留的一个特殊的.pptx文件,也可能只是上周的文件。我建议您从上周的模板开始,然后始终使用相同的模板。这只会让事情变得更可预测。您可以从调用prs = Presentation("my-template.pptx")开始该过程。

  3. 查找需要更新的图表。如果你总是使用同一个模板,它可以是chart = prs.slides[3].shapes[6].chart或任何正确的数字,因为它总是在同一个地方。

  4. 创建一个包含新编号的新ChartData对象。

  5. 调用chart.replace_chart_data(new_chart_data)替换图表值。

  6. 然后prs.save(new_name_for_this_week),你就完成了。

python-pptx文档如下:https://python-pptx.readthedocs.io/en/latest/index.html

我想说,完成入门练习只是热身,然后再举这个例子:https://python-pptx.readthedocs.io/en/latest/user/charts.html

在那之后,谷歌是你的朋友,大多数道路都通向StackOverflow,那里有500多个关于python-pptx特定方面的问题和答案。

最新更新