使用PyWin32捕获excel警报

2024-09-28 17:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将.xls文件转换为.xlsx,这是一个专有软件,它调用一些python代码

然而,我们通常面临的一个问题是.xls文件不符合.xls标准,在使用excel打开时会发出警报

我们希望在尝试打开这些文件时捕获excel警报,而不实际生成弹出窗口,这样我们就可以简单地继续,而不必与弹出窗口交互,并且文件将不会被转换

def xls_to_xlsx(input_file_full_path):
      fname = input_file_full_path
      excel = win32.gencache.EnsureDispatch('Excel.Application')
      excel.DisplayAlerts=False
      wb = excel.Workbooks.Open(fname)
      wb.SaveAs(fname+"x", FileFormat = 51)    #FileFormat = 51 is for .xlsx extension
      wb.Close()                               #FileFormat = 56 is for .xls extension
      excel.Application.Quit()
      return input_file_full_path+'x'

这是我们目前正在使用的代码,问题是如果我们删除“excel.DisplayAlerts=False”,就会出现弹出窗口。除了启用excel弹出窗口外,还有其他方法处理警报吗


Tags: 文件path代码inputapplication警报xlsxxls