为什么我在尝试使用 pywin32 打开 Excel 文件时出现'Open method of Workbooks class failed'错误?



所以,我使用openpyxl和panda打开一个excel文件,并写入数据。然后,我尝试使用pywin32打开同一个文件,并运行一个宏来解析数据。但是,我在尝试用pywin32:打开文件时遇到了这个错误

pywintypes.com_error:(-2147352567,"发生异常。",(0,"Microsoft Excel","Workbooks类的打开方法失败","xlmain11.chm",0,-2146827284(,无(

这是我在pywin32:中使用的代码

if os.path.exists(self.excel_parser_location):
# print "Opening Telematics_Messages_Parser.xlsm in Excel"
xl = client.Dispatch("Excel.Application")
xl.Application.visible = True
wb = xl.Workbooks.Open(os.path.abspath(self.excel_parser_location), ReadOnly=1)

这是我在使用pywin32:之前用来写入数据的代码

if os.path.exists(csv_path):
data = pd.read_csv(csv_path, error_bad_lines=False)
book = openpyxl.load_workbook(self.excel_parser_location, keep_vba=True)
writer = pd.ExcelWriter(self.excel_parser_location)
writer.book = book
data.to_excel(writer, sheet_name='2 RawData', index=False)
# print 'Writing new data'
book.remove(book['2 RawData'])
# print 'Removing blank sheet'
book_sheet = book['2 RawData1']
book_sheet.title = '2 RawData'
# print 'Renaming sheet'
writer.save()
writer.close()

我过去也遇到过类似的问题,我使用旧版本的pywin32解决了这个问题,但现在不起作用了。我使用的是pywin32版本223。

有时当文件路径过长时会发生此错误。所以你应该用更短路径的文件来尝试这个代码

尝试以下脚本,看看它是否有效:

wb = xl.Workbooks.Open(os.path.abspath(self.excel_parser_location), ReadOnly=1, CorruptLoad=1)

最新更新