使用Python在Excel中插入行,xlwings调用insert方法报错如何解决?
xlwings插入行功能报错解决方案
你遇到的'Range' object has no attribute 'Insert'报错,核心原因是使用的xlwings版本低于0.22.0,该版本以下的xlwings原生Range对象未封装insert方法,可通过以下两种方案实现需求:
- 方案1:兼容所有xlwings版本的底层接口调用
无需升级依赖,直接调用Range对象的api属性访问Excel原生COM接口即可,插入行示例代码如下:
import xlwings as xw # 打开对应工作簿和工作表 wb = xw.Book("你的Excel文件路径.xlsx") ws = wb.sheets["目标工作表名称"] # 在Excel第1行上方插入1行,原有行向下偏移 # Shift参数传-4121对应Excel常量xlShiftDown,代表内容向下移动 ws.range('1:1').api.Insert(Shift=-4121) # 如需插入多行,例如在第2行上方插入3行,选中对应行数的范围调用即可 ws.range('2:4').api.Insert(Shift=-4121)
- 方案2:升级xlwings到支持原生insert的版本
将xlwings升级到0.22.0及以上版本后,你原本使用的ws.range('1:1').insert('down')语法即可正常运行,升级命令为:pip install --upgrade xlwings
内容的提问来源于stack exchange,提问作者Ritvik Goenka
相关产品推荐
相关产品推荐

