Qanday qilib win32com-dan foydalanib yuborilgan ob'ektlarning atributlarini ishonchli tarzda o'rnatishim mumkin

Men ob'ektga atribut belgilashga qiynalmoqdaman (yoki bu misolmi)

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

Agar srce ob'ektini uning CheckCompatibility atributi haqida so'rasam, "False" javobini olaman.

>>> srce.CheckCompatibility
    False

Shunday qilib, men buni o'zim xohlagan tarzda saqlab qolishim mumkin deb o'ylayman

srce.SaveAs(r'c:\newtttxt14.xls',FileFormat=1)

Lekin men buni qilganimda Muvofiqlik tekshiruvi dialog oynasi paydo bo'ladi. Davom etish tugmasini bosdim, fayl saqlanadi va keyin moslikni yana tekshiraman.

>>> srce.CheckCompatibility
    True

So I again try to set it and this time I am successful

srce.CheckCompatibility='False'

Men yana bir bor so'rayman:

>>> srce.CheckCompatibility
False

Endi faylni saqlashga harakat qilganimda Muvofiqlik tekshiruvi dialog oynasi ko'rinmaydi, fayl men xohlagan tarzda saqlaydi.

Faylni boshqa formatda saqlashga urinishdan oldin srce atributini o'rnatishimga ishonchim kerak - bu boshqa yo'l bilan sodir bo'lishi mumkinmi?

rahmat


person PyNEwbie    schedule 06.03.2011    source manba


Javoblar (1)


Ishonchim komil emas, lekin nima sodir bo'layotganini gumon qilamanki, faylni XLS shaklida saqlash CheckCompatibility qiymatini qayta tiklaydi, chunki Excel 97-2003 ikkilik ish kitoblari uchun ushbu xususiyatning standart qiymati True.

Qanday bo'lmasin, Excel faylni saqlashda faqat moslik tekshiruvi emas, balki dialog oynasini ko'rsatishi uchun bir nechta sabablar mavjud. Sizning skriptingiz faylni saqlaganida foydalanuvchi interaktivligi talab qilinmasligi uchun dialog oynalarini bostirishni xohlayotganingizdan shubhalanaman. Quyidagilarni qo'shish orqali dialog oynalarini bosishingiz mumkin:

>>> xl.DisplayAlerts = False

srce.SaveAs(...) ga qo'ng'iroq qilishdan oldin.

person srgerg    schedule 06.03.2011