You need to enable JavaScript to run this app. 使用Python的openpyxl库合并Excel工作表中符合特定条件的单元格
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的openpyxl库合并Excel工作表中符合特定条件的单元格

解决方案

原代码错误点

  • worksheet.merge_cells(item:item+1)语法不符合openpyxl要求,merge_cells支持两种传参方式:传入范围字符串(如A7:B7),或传入start_row、start_col、end_row、end_col四个整型参数;且item为单元格坐标字符串,直接做item+1运算无法得到右侧单元格的坐标
  • 冗余逻辑:不需要单独收集所有符合条件的单元格坐标,遍历到符合条件的单元格时可直接完成合并操作

修正后可运行代码

from openpyxl import load_workbook

wb = load_workbook('Test.xlsx')
# 你原代码中定义的ws = wb.active未使用,直接删除即可
worksheet = wb['Example']

# 从第7行开始遍历所有行
for row in worksheet.iter_rows(min_row=7):
    for cell in row:
        if cell.value == 'Sample':
            # 直接通过单元格的行列属性定义合并范围,同一行仅列号+1即可
            worksheet.merge_cells(
                start_row=cell.row,
                start_col=cell.column,
                end_row=cell.row,
                end_col=cell.column + 1
            )

wb.save('merging.xlsx')

补充说明

  • 合并单元格后默认保留左上角单元格的内容,也就是你匹配到的Sample内容会正常保留,右侧相邻单元格的内容会被覆盖,符合Excel的常规合并逻辑
  • 若某一行存在多个值为Sample的单元格,代码会分别对每个符合条件的单元格执行和右侧单元格合并的操作,符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 05:06:08