我怎样才能用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(...)