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

使用openpyxl识别含指定部分字符串的行但无法删除问题

解决Excel工作表删除指定字符串行失败的问题

你这段代码能识别目标行但无法完成删除,核心问题是正向遍历行时删除行会导致后续行的索引错乱:删除一行后,后面的行自动上移一位,但循环仍按原顺序迭代,会跳过本该处理的行。

解决方案1:反向遍历行

从最后一行往起始行遍历,删除后面的行不会影响前面行的位置,避免索引偏移:

# 转成列表后反向遍历,确保迭代顺序正确
for row in reversed(list(sheet10.iter_rows(2, sheet.max_row-1))):
    message = row[10].value
    if message is not None and 'My partial string' in message:
        print(row[10].value)
        print(row[0].row)
        sheet10.delete_rows(row[0].row, 1)

解决方案2:先收集行号再批量删除

先把所有需要删除的行号存起来,再从大到小依次删除,同样避免索引错乱:

# 第一步:收集所有待删除的行号
rows_to_delete = []
for row in sheet10.iter_rows(2, sheet.max_row-1):
    message = row[10].value
    if message is not None and 'My partial string' in message:
        rows_to_delete.append(row[0].row)

# 第二步:从大到小删除行
for row_num in reversed(rows_to_delete):
    sheet10.delete_rows(row_num, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:00:01