我一直在这里看:https://msdn.microsoft.com/en-us/vba/excel-vba/articles/object-model-excel-vba-reference
我手动在Excel中创建了一个图表并记录了该宏。使用它我试图导航使用哪些方法。在下面的代码中,ch是工作表中的嵌入式图表对象。根据上面的链接,它应该有一个名为SetSourceData的方法,它将Range作为必需参数。
import win32com.client as wc
xl = wc.Dispatch("Excel.Application")
xl.Visible = True
wb = xl.Workbooks.Add()
ws = wb.Worksheets.Add()
ws.Name = 'New Sheet'
ws.Cells(5,5).Value = 1
ws.Cells(6,5).Value = 1
ws.Cells(5,6).Value = 1
ws.Cells(6,6).Value = 1
ch = ws.ChartObjects().Add(100, 100, 100, 100)
#everything above works fine. problem is I can't add data to my chart.
ch.SetDataSource("E5:F5")
当我运行上述操作时,出现以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-47-5b5d1a6d3109> in <module>()
30 ws.Cells(6,6).Value = 1
31
---> 32 ch.SetDataSource("E5:F5")
33
~\AppData\Local\Continuum\anaconda3\lib\site-
packages\win32com\client\dynamic.py in __getattr__(self, attr)
525
526 # no where else to look.
--> 527 raise AttributeError("%s.%s" % (self._username_, attr))
528
529 def __setattr__(self, attr, value):
AttributeError: Add.SetDataSource
导入win32com.client时,有没有办法显示哪些方法可用?现在,我必须继续访问MS网站并深入研究每种方法的图表创建/格式化,这种方法效率不高,但我必须承认这是有益的。
答案 0 :(得分:0)
ch.SetDataSource(Source=ws.Range('E5:F5'))