0

オブジェクト(またはインスタンス)に属性を割り当てるのに苦労しています

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

CheckCompatibility属性についてsrceオブジェクトにクエリを実行すると、「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 に答える