2014-06-19 51 views
0

我有一个由python lib xlsxwriter创建的xlsx,并且里面有一个图表。我的问题是如何使用python代码导出此图表并保存为jpg图像?python从现有的xlsx导出图表

我的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

xlsx文件包含数据,需要Excel应用程序来渲染它。 因此,您可以导出Excel工作簿中定义的图表的唯一方法是运行Excel并捕获图表。这可以通过启动应用程序并选择/复制来手动完成,或者通过编程方式通过win32com来选择。但是win32com只适用于Windows,因为它使用Windows的COM技术。您可以运行代码的唯一操作系统在Windows上,而Excel只能在Windows上运行。您可能能够从CentOS运行Wine:它提供了在Linux中“嵌入”Windows的能力,类似于VMWare Player(但它们有很多不同的优点和缺点)。最简单的方法是在CentOS中运行Wine(或VMWare VM guest虚拟机)中的脚本,然后将其输出到CentOS文件系统上的文件夹中。

所以从上面你应该得出结论你的问题的答案是“你不能从Linux”,但如果你可以从Linux使用Wine或VMWare播放器,那么有一种方法。

+0

现在我创建了一个excel文件,其中的图表由python在linux上,我可以从现有的excel文件中获取图表吗?我想在电子邮件正文中插入该图表。 – wiley

+0

@wiley更新。请至少阅读粗体,HTH。 – Schollii