如何使用xlwings打开已有工作簿且不新建空白工作簿?
解决xlwings打开Excel时自动生成空白工作簿的问题
正确写法(直接避免空白工作簿)
用add_book=False创建Excel实例,再打开你的目标文件,就不会生成多余的Book1了:
import xlwings as xw mypath = "你的Excel文件路径" # 替换成实际路径 app = xw.App(add_book=False) # 创建不带默认空白工作簿的Excel进程 wb = app.books.open(mypath) # 这里写你要编辑Excel的代码 # 操作完记得按需关闭(可选) # wb.close() # app.quit()
之前的错误原因
- 用
xw.App(add_book=False)报错:多半是你没正确填写mypath,或者创建实例后没立刻打开目标文件,导致Excel进程里没有工作簿触发错误。确保路径有效,创建实例后马上打开你的文件就行。 - 直接用
xw.books.open(mypath)报错:当电脑里没开Excel时,xlwings会自动建一个带空白工作簿的进程,要是这个自动创建过程出问题就会报错。显式创建add_book=False的实例更稳。 - Stack Overflow的代码报错:xlwings里获取活动工作簿的正确写法是
app.active_workbook(小写加下划线),不是ActiveWorkbook,而且这个方法本来就没必要,直接用add_book=False更简单。
小提示
- 想让Excel窗口显示出来,创建实例时加
visible=True:app = xw.App(add_book=False, visible=True) - 操作结束后最好调用
app.quit(),避免后台留着Excel进程占资源。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

