我不断得到错误,其中xlCategory
、xlValue
和{
我正在尝试标记图形的轴,并在昨天成功地使用以下代码:
chart = excel.Charts.Add()
chart.Name = "Chart Title"
chart.ChartType = -4169 #xlXYScatter
chart.SetSourceData(firstSheet.Range("$A:$B"))
series = chart.SeriesCollection(1)
series.Name = "Series Name"
chart.Axes(win32com.client.constants.xlCategory).HasTitle = True
chart.Axes(win32com.client.constants.xlCategory).AxisTitle.Caption = "x Axis"
chart.Axes(win32com.client.constants.xlValue).HasTitle = True
chart.Axes(win32com.client.constants.xlValue).AxisTitle.Caption = "y Axis"
这产生了以下错误:
^{pr2}$所以我从这个stackoverflow问题changing axis labels in excel 2007 charts using python win32com尝试了这个问题:
pAxis = chart.Axes(AxisGroup = xlPrimary)
xAxis = pAxis(1)
yAxis = pAxis(2)
xAxis.HasTitle = True
yAxis.HasTitle = True
xAxis.AxisTitle.Caption = "VMD"
yAxis.AxisTitle.Caption = "MOD VMD"
但这产生了以下错误:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
startGraphBuild()
File "C:\Python33\InCAS_Study_Analysis\VMDvsMODVMDG.py", line 37, in startGraphBuild
pAxis = chart.Axes(AxisGroup = xlPrimary)
NameError: global name 'xlPrimary' is not defined
还有其他人经历过吗?自从昨天开始工作以来,我尝试重新启动一切,卸载并重新安装pyWin,但这些都没有成功。在
我使用的是python3.3和excel2010。在
常数已定义。但是,只有在为感兴趣的COM对象创建了COM类型库时,才会加载它们。有几种方法可以做到这一点(我对Accessing enumaration constants in Excel COM using Python and win32com的自我回答中有一些链接,您会发现这些链接很有用)。但基本上试试这个:
现在尝试使用
^{pr2}$Dispatch
:现在从
^{3}$gencache
使用EnsureDispatch
:您只需要使用
EnsureDispatch
一次,因为一旦创建了类型库,Dispatch
也会加载常量。在如果出于任何原因需要清除缓存,不容易找到,但可以删除
gen_py
文件夹,其路径可以从win32com.__gen_path__
找到。在此属性错误的主要原因是因为COM服务器已从后期绑定(动态)转移到早期绑定(静态)。在
有两种方法可以解决此问题:
使用动态模块强制代码以面向后期绑定的方式工作。示例用法:
使用区分大小写的关键字进行早期的绑定。示例用法:
如果要使用不区分大小写的变量,则应删除gen_py文件夹并使用win32com.client.Dispatch公司()
相关问题 更多 >
编程相关推荐