Python修改合并单元格值时报错:‘MergedCell‘ object attribute ‘value‘ is read-only

文章指导如何使用openpyxl库修改example.xlsx中B列合并单元格的值,包括取消合并、修改和重新合并的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

合并的单元格不可以直接修改其值,必须先取消合并、修改值、再重新合并。
下面的示例是将example.xlsx表格的sheet2表单的B列单元格中所有合并的单元格的值修改为‘Y’。这里面是假设B列中存在多个独立的合并单元格

import openpyxl

wb = openpyxl.load_workbook('example.xlsx')
ws = wb['sheet2']

merged_cell_range = list(ws.merged_cells.ranges)
merged_cell_B2 = [cell for cell in merged_cell_range if cell.coord[0]=='B']
for merged_cell in merged_cell_B2:
    min_col, min_row, max_col, max_row = merged_cell.bounds  # 获取合并单元格的边界  
    # 取消合并  
    ws.unmerge_cells(str(merged_cell))
    # 修改值  
    ws.cell(row=min_row, column=min_col).value = 'Y'  
    # 重新合并  
    ws.merge_cells(start_row=min_row, start_column=min_col, end_row=max_row, end_column=max_col)

wb.save('example_updated.xlsx')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值