python / excel cell – > png

伙计,有一个Excel文档,需要每周更新…只需要更新的几个单元格,这是完全可行的: http : //www.python-excel.org/

在更新这些单元格之后,会在excel内部生成一个graphics。 是否有可能通过python将这个图导出为.png(即复制单元格A3-B7并导出到图像中)?

想法,想法?

谢谢!

您可以使用COM扩展将现有图表导出为PNG。 在导出之前,您必须确保图表已经使用新数据更新。

我发现这个关于Charts对象的讨论很有帮助: http : //msdn.microsoft.com/zh-cn/library/aa213725(v=office.11​​).aspx

你会用这样的东西(未经testing的代码):

 from win32com.client import Dispatch xlsApp = Dispatch("Excel.Application") xlsWB = xlsApp.Workbooks.Open(r'C:\TEST\WorkbookWithAChart.xlsx') xlsSheet = xlsWB.Sheets("Sheet 1") mychart = XlsSheet.Charts(1) #'1' is the index of the chart object in the wb mychart.Export(Filename=r'C:\TEST\MyExportedChart.png') 

有用的参考:

  • 快速启动到客户端COM
  • Win32COM文档

没有实际使用Excel,这将是不可能的。 您需要Excel来绘制更新信息的graphics。

如果您可以使用Excel,则可以编写一个将图表导出为PDF文件的macros。 像这样的东西:

 Sheets("Sheet1").ChartObjects("Chart Name").Chart.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\folder\filename.pdf", _ Quality:=xlQualityStandard, _ OpenAfterPublish:=False