使用xlwings在新工作簿中创建工作表时出现CommandError错误
解决xlwings新建工作表时的CommandError问题
问题重现
执行代码:
import xlwings as xw wb = xw.Book() sheet = wb.sheets.add('trade_summary')
出现错误:
CommandError: 命令执行失败: 系统错误: -1728 提示信息: 您尝试访问的对象不存在 执行命令: app(pid=464).workbooks['Book13'].sheets['Sheet2'].name.get()
可能原因及解决办法
交互延迟导致对象未初始化
新建工作簿后,Excel可能未完全完成初始化流程,xlwings就尝试访问默认工作表,触发对象不存在的错误。
解决:添加短暂延迟等待Excel加载完成:import xlwings as xw import time wb = xw.Book() time.sleep(0.5) # 给Excel预留初始化时间 sheet = wb.sheets.add('trade_summary')默认工作表引用不匹配
部分环境(如Mac版Excel)中,新建工作簿的默认工作表名称/数量可能与xlwings预期不符,导致自动引用时出错。
解决:明确指定新建工作表的位置,避免依赖默认引用:import xlwings as xw wb = xw.Book() # 明确在第一个现有工作表后添加新表 sheet = wb.sheets.add('trade_summary', after=wb.sheets[0])Excel进程残留冲突
未正常关闭的Excel残留进程,可能导致xlwings引用了无效的工作簿对象。
解决:关闭所有Excel进程后重新运行代码。
内容的提问来源于stack exchange,提问作者AndyB
相关产品推荐
相关产品推荐

