通過 xlwings操作生成excel時意外報錯(pywintypes.com_error: (-2147352567, '發生意外。', (0, None, None, None, 0, -2146827284), None))
詳細報錯信息如下:
Traceback (most recent call last): File "sanity_report.py", line 136, in <module> report.generate_report("HAHADAXIAO", "XIAO", "23850", "V1.0.0", [2, 0, 0, 0]) File "sanity_report.py", line 40, in generate_report sht.range("B3:C3").merge() File "C:\Program Files\Python37\lib\site-packages\xlwings\main.py", line 1905, in merge self.impl.merge(across) File "C:\Program Files\Python37\lib\site-packages\xlwings\_xlwindows.py", line 1050, in merge self.xl.Merge(across) File "C:\Program Files\Python37\lib\site-packages\xlwings\_xlwindows.py", line 66, in __call__ v = self.__method(*args, **kwargs) File "C:\Users\ADMIN\AppData\Local\Temp\gen_py\3.7\00020813-0000-0000-C000-000000000046x0x1x8.py", line 31848, in Merge return self._oleobj_.InvokeTypes(564, LCID, 1, (24, 0), ((12, 17),),Across pywintypes.com_error: (-2147352567, '發生意外。', (0, None, None, None, 0, -2146827284), None)
針對以上錯誤代碼,查詢錯誤的詳細描述:
>>> import win32api
>>> win32api.FormatMessage(-2146827284)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pywintypes.error: (317, 'FormatMessageW', '系統無法在消息文件中為 %2 找到消息號為 0x%1 的消息文本。')
>>>
根據這個錯誤提示,回想一下自己的操作方式,在xlwings打開excel后,我按 win+d 組合鍵進入最小化操作,此時就報這錯,如果不最小化就不報錯,跟那錯誤的提示有些穩合。
但不管怎么樣這都是個問題,反正已經知道問題生產的原因后續不要這么 操作即可避免該問題,但同時還是給xlwings開發人員提個單吧,看是否可以改進