0

我一直在努力为一个对象分配一个属性(或者它是一个实例)

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 的属性 - 这会以其他方式发生吗?

谢谢

4

1 回答 1

6

我不确定,但我怀疑发生的事情是以 XLS 形式保存文件正在重置值,CheckCompatibility因为对于 Excel 97-2003 二进制工作簿,该属性的默认值是 True。

在任何情况下,Excel 在保存文件时可能会显示对话框的原因有多种,而不仅仅是兼容性检查器。我怀疑您真正想要的是抑制对话框,以便在脚本保存文件时不需要用户交互。您可以通过添加以下内容来抑制对话框:

>>> xl.DisplayAlerts = False

在您致电之前srce.SaveAs(...)

于 2011-03-06T11:15:36.713 回答