使用 python xlwings 将图表导出为图像

问题描述 投票:0回答:3

我一直致力于使用 Python 和 xlwings 自动创建 Excel 报告。在这些报告中,有多个图表和图形,我现在想在 pptx 演示文稿中使用它们,并保持相同的格式和设计。为了生成 pptx,我目前正在使用 python-pptx。

理想的解决方案是使用 xlwings、python-pptx 或其他库将图表直接从 Excel 导出到 Powerpoint,保持图表的格式和设计并保持数据集在演示文稿中可编辑。

第二种解决方案是在 Excel 报告中创建图表时将其导出到临时文件夹中作为图像。然后,使用 python-pptx 将这些图像上传到演示文稿。这将确保保持图表的设计,但意味着数据可能无法编辑。为此,我需要知道如何使用 xlwings 将图表保存为图像,但我找不到方法。

我对不同的解决方案持开放态度,包括用不同的语言抓取生成的 Excel(先验且未经调查,我猜 C# 可能非常适合 Windows 应用程序)。尽管这意味着增加整个项目的可理解性。

提前非常感谢

python excel powerpoint xlwings python-pptx
3个回答
1
投票

您可以通过回退到底层 pywin32 对象并采用 VBA 的解决方案来实现基于 xlwings 的解决方案,请参阅例如:https://stackoverflow.com/a/11939249/918626

要了解如何处理底层 pywin32 对象,请参阅:http://docs.xlwings.org/en/stable/missing_features.html


0
投票

较旧的问题,但我对解决方案 2 有建议,使用 xlwings 保存图像

这是从另一篇文章中稍微修改的xlwings:复制范围并另存为图像

import xlwings as xw

sht.range("Print_Area").api.CopyPicture(Appearance=1, Format=2)
sht.api.Paste()
sht.pictures[0].api.CopyPicture

我更改的部分是使用外观 1 和格式 2 作为 CopyPicture 行中的选项,这使我能够处理比 OG 帖子中的结果更好的结果。从那里您可以使用剪贴板在 PPTX 中保存静态图像


0
投票

@ Maxwell Miller:您能否提供有关“外观”和“格式”选项的链接? (我不允许评论你的答案,否则我会这样问。)

© www.soinside.com 2019 - 2024. All rights reserved.