伙计们, 有一个 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:TESTWorkbookWithAChart.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:TESTMyExportedChart.png')
有用的参考资料:
- 客户端 COM 快速入门
- Win32COM 文档
如果不实际使用Excel,这将是不可能的。 您需要 Excel 使用更新的信息绘制图形。
如果可以使用Excel,则可以编写将图表导出为PDF文件的宏。 像这样:
Sheets("Sheet1").ChartObjects("Chart Name").Chart.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:folderfilename.pdf", _
Quality:=xlQualityStandard, _
OpenAfterPublish:=False