2011-03-06 46 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(...)之前。