Openpyxl遇到MergedCell单元格如何跳过
时间: 2024-09-11 17:02:09 浏览: 107
当你使用`openpyxl`处理Excel时,遇到`MergedCell`(合并单元格)可能会遇到`'MergedCell' object attribute 'value' is read-only`这样的错误,因为合并单元格的值是只读的。要跳过这种合并单元格并继续处理其他非合并单元格,你可以按照以下步骤操作:
1. 定义一个辅助函数来检查单元格类型并获取值[^1]:
```python
def get_non_merged_value(sheet, i, j):
cell = sheet.cell(i, j)
if isinstance(cell, MergedCell):
# 如果是合并单元格,找到其实际的值区域并获取值
for merged_range in sheet.merged_cell.ranges:
if cell.coordinate in merged_range:
cell = sheet.cell(row=merged_range.min_row, column=merged_range.min_col)
break
return cell.value
```
2. 使用该函数替换原始的单元格值获取过程:
```python
# 原始的写入数据操作,但使用get_non_merged_value函数处理合并单元格
workSheet.cell(row=1, column=1, value=get_non_merged_value(workSheet, 1, 1), value='合格数')
```
这样,当尝试写入合并单元格时,程序会自动获取合并单元格的实际值而不是直接访问只读属性。
阅读全文