使用win32com打开Excel工作簿时出现Python错误
问题分析与解决:用win32com打开Excel文件失败的问题
嘿,我一眼就瞅出你代码里的问题啦!问题出在打开工作簿的那一行,调用方式搞反了~
你现在写的是excel.Workbooks(r'文件路径').Open(),但实际上Workbooks对象的Open方法是直接接收文件路径作为参数的,正确的调用逻辑应该是调用Workbooks.Open()并传入路径,而不是先以路径为索引去访问Workbooks集合再调用Open。之前的写法相当于在找一个叫这个路径名字的工作簿,这显然不存在,所以才会在打开环节报错。
给你修正后的完整代码:
def open_sheet(): excel = win32com.client.Dispatch("Excel.Application") # 修正Open方法的调用方式,直接传入文件路径给Workbooks.Open() wb = excel.Workbooks.Open(r'C:\Users\<username>\Documents\<more file path>\test.xls') ws = wb.Worksheets('abc') # 存在名为abc的工作表 excel.Visible = True
另外给你个小优化提示:既然你的.py文件和test.xls在同一目录下,完全可以不用写冗长的绝对路径,直接用文件名即可,代码会更简洁灵活:
wb = excel.Workbooks.Open('test.xls')
内容的提问来源于stack exchange,提问作者user4396936




