You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用xlwings删除Excel行?旧方法失效(Python2.7+xlwings0.11.7 Mac)

解决xlwings 0.11.7(Mac+Python2.7)删除行失效的问题

Hey there! 针对你遇到的旧删除行方法失效的情况,结合你用的Python 2.7+xlwings 0.11.7(Mac环境),我给你几个靠谱的解决方案:

方案1:用数值替代DeleteShiftDirection常量

旧方法里引用DeleteShiftDirection.xlShiftUp失效,大概率是这个版本的xlwings在Mac上对Office常量的映射出了问题。你可以直接用xlShiftUp对应的数值-4162来替代,代码如下:

import xlwings as xw

sht = xw.sheets.active
# 替换currRow为你要开始删除的行号,比如从第10行删到最后一行
sht.range(f"{currRow}:65536").api.Delete(-4162)

方案2:删除指定单行/多行

如果只是要删除某一行或者连续的几行,直接指定行范围即可,同样用数值参数:

  • 删除单行(比如第5行):
sht.range("5:5").api.Delete(-4162)
  • 删除连续多行(比如第3到第8行):
sht.range("3:8").api.Delete(-4162)

补充说明

之所以旧方法失效,是因为xlwings 0.11.7在Mac环境下对DeleteShiftDirection这类Office常量的引用存在兼容性问题,直接传入对应的数值就能绕过这个坑。另外,如果你用的是较新版本的Excel,行号上限可以改成1048576,但对应旧版本Excel的话,65536是没问题的。

内容的提问来源于stack exchange,提问作者Kotie Smit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:24:29