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

How can I pull data from Excel and transfer it to existing charts and tables on Powerpoint using Python?

每周,我都会收到相同的 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

在那之后,Google 是你的朋友,大多数道路都会回到这里到 Whosebug,那里有超过 500 个问题以及关于 python-pptx.

特定方面的答案。