用Python从现有的xlsx导出图表

0 投票
1 回答
2770 浏览
提问于 2025-04-18 10:20

我有一个用Python库xlsxwriter创建的xlsx文件,里面有一个图表。我的问题是,怎么用Python代码把这个图表导出并保存为jpg图片呢?

我的Python代码会在CentOS系统上运行,我找到下面的代码,但好像只能在Windows上运行:

from win32com.client import Dispatch
xlsApp = Dispatch("Excel.Application") 
xlsWB = xlsApp.Workbooks.Open(r'/tmp/test/code.xlsx') 
xlsSheet = xlsWB.Sheets("sheet1") 
mychart = XlsSheet.Charts(1)  #'1' is the index of the chart object in the wb
mychart.Export(Filename=r'/tmp/test/MyExportedChart.png') 

有没有什么想法?

1 个回答

1

这个xlsx文件里有数据,需要用Excel应用程序来打开它。所以,想要导出Excel工作簿里定义的图表,唯一的方法就是运行Excel并捕捉这个图表。你可以手动打开应用程序,然后选择和复制图表,或者通过win32com来编程实现。不过win32com只在Windows系统上有效,因为它使用了Windows的COM技术。你能运行的代码只能在Windows上,而Excel也只能在Windows上运行。你可能可以在CentOS上使用Wine:它可以让你在Linux里“嵌入”Windows,类似于VMWare Player(但它们各自有不同的优缺点)。最简单的方法就是在CentOS上通过Wine(或者你的VMWare虚拟机)运行这个脚本,并把输出结果保存到CentOS的文件系统中的一个文件夹里。

所以,从上面的内容你应该得出结论:你的问题的答案是“不能,你不能在Linux上做到这一点”,但如果你能在Linux上使用Wine或VMWare Player,那就有办法了。

撰写回答