我一直在努力为对象分配一个属性(或者它是一个实例)
xl=win32com.client.Dispatch('Excel.Application')
xl.Visible=0
srce=xl.Workbooks.Open('myexcelfile')
srce.CheckCompatibility='False'
如果我在srce对象中查询其CheckCompatibility属性,我会得到'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的属性 - 这可以通过其他方式发生吗?
由于
答案 0 :(得分:5)
我不确定,但我怀疑正在发生的事情是以XLS格式保存文件正在重置CheckCompatibility
的值,因为Excel 97-2003二进制工作簿的该属性的默认值为True。 / p>
在任何情况下,Excel在保存文件时可能会显示对话框的原因有多种,而不仅仅是兼容性检查程序。我怀疑你真正想要的是禁止对话框,以便在脚本保存文件时不需要用户交互。您可以通过添加以下内容来禁止显示对话框:
>>> xl.DisplayAlerts = False
在致电srce.SaveAs(...)
之前。