python从现有的xlsx导出图表

我有一个由python lib xlsxwriter创build的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') 

任何想法 ?

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

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