2011-03-06 41 views
0

我一直在挣扎要分配给对象的属性(或者是它的一个实例)我怎么能放心地使用win32com

xl=win32com.client.Dispatch('Excel.Application') 
xl.Visible=0 
srce=xl.Workbooks.Open('myexcelfile') 
srce.CheckCompatibility='False' 

如果我询问有关其CheckCompatibility属性SRCE对象设置调度对象的属性我得到的回应“假”

>>> 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的属性,然后再尝试以另一种格式保存文件 - 这可以以其他方式进行吗?

感谢

回答

5

我不知道,但我怀疑这是怎么回事是保存在文件中XLS形式,因为该属性的默认值重置的CheckCompatibility值为True为Excel 97-2003二进制工作簿。

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

>>> xl.DisplayAlerts = False 

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