用Python从现有的xlsx导出图表
我有一个用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,那就有办法了。