我怎样才能用win32com自信地设置调度对象的属性
我一直在努力将一个属性分配给一个对象(或者它是一个实例)
xl=win32com.client.Dispatch('Excel.Application') xl.Visible=0 srce=xl.Workbooks.Open('myexcelfile') srce.CheckCompatibility='False'
如果我查询关于它的CheckCompatibility属性的srce对象,我得到一个“False”
>>> srce.CheckCompatibility False
所以我天真地想我可以保存这个我想要的
srce.SaveAs(R'C:\ newtttxt14.xls',的FileFormat = 1)
但是当我这样做时,兼容性检查对话框出现。 我打继续,文件保存,然后再次检查兼容性。
>>> srce.CheckCompatibility True So I again try to set it and this time I am successful srce.CheckCompatibility='False'
我再次查询它:
>>> srce.CheckCompatibility False
现在,当我试图保存文件的兼容性检查器对话框不会出现,文件保存完全是我想要的。
在我尝试以另一种格式保存文件之前,我需要确定是否可以设置srce的属性 – 可以以其他方式进行吗?
谢谢
我不确定,但我怀疑发生了什么事情是以XLS格式保存文件正在重置CheckCompatibility
的值,因为Excel 97-2003二进制工作簿的该属性的默认值为True。
无论如何,Excel保存文件时可能会显示对话框的原因有很多,而不仅仅是兼容性检查器。 我怀疑你真正想要的是压制对话框,以便在脚本保存文件时不需要用户交互。 您可以通过添加以下来禁止对话框:
>>> xl.DisplayAlerts = False
在您调用srce.SaveAs(...)
。