所以,我使用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)