如何使用win32com自信地设置调度对象的属性

时间:2011-03-06 04:05:57

标签: python excel attributes win32com

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

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

由于

1 个答案:

答案 0 :(得分:5)

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

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

>>> xl.DisplayAlerts = False
在致电srce.SaveAs(...)之前