伙计们,有一个需要每周更新的 excel 文档......只有几个单元格需要更新,这完全可以通过: http: //www.python-excel.org/
更新这些单元格后,会在 excel 中生成一个图表。是否可以通过python将此图导出为.png(即复制单元格A3-B7并导出为图像)?
想法,想法?
谢谢!
伙计们,有一个需要每周更新的 excel 文档......只有几个单元格需要更新,这完全可以通过: http: //www.python-excel.org/
更新这些单元格后,会在 excel 中生成一个图表。是否可以通过python将此图导出为.png(即复制单元格A3-B7并导出为图像)?
想法,想法?
谢谢!
您可以使用COM 扩展将现有图表导出到 PNG 。在导出之前,您必须确保图表已使用新数据进行了更新。
我发现这个Charts
对象的讨论很有帮助:
http: //msdn.microsoft.com/en-us/library/aa213725 (v=office.11).aspx
你会得到这样的东西(未经测试的代码):
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')
有用的参考资料:
如果不实际使用 Excel,这将是不可能的。您需要 Excel 来绘制带有更新信息的图形。
如果您可以使用 Excel,您可以编写一个将图表导出为 PDF 文件的宏。像这样的东西:
Sheets("Sheet1").ChartObjects("Chart Name").Chart.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\folder\filename.pdf", _
Quality:=xlQualityStandard, _
OpenAfterPublish:=False