Python遇到合并单元格不能写值
时间: 2023-08-27 15:21:32 浏览: 150
在 Python 中,如果你想要往一个合并单元格写入数据,你需要先将该合并单元格拆分为多个单元格,然后再写入数据。以下是一个示例代码:
```python
from openpyxl import Workbook
from openpyxl.utils import range_boundaries
# 创建一个新的 Excel 文件
wb = Workbook()
# 获取工作表
ws = wb.active
# 写入数据
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws.merge_cells('C1:E1')
ws['C1'] = 'Contact Info'
# 拆分合并单元格
min_col, min_row, max_col, max_row = range_boundaries('C1:E1')
for row in ws.iter_rows(min_row=min_row, max_row=max_row, min_col=min_col, max_col=max_col):
for cell in row:
cell.value = 'Contact Info'
# 在拆分后的单元格中写入数据
ws['A2'] = 'John'
ws['B2'] = 25
ws['C2'] = 'john@example.com'
ws['D2'] = '1234567890'
ws['E2'] = '123 Main St.'
# 保存 Excel 文件
wb.save('example.xlsx')
```
在这个示例中,我们在 C1 单元格中写入了一个标题,并将 C1 到 E1 的单元格合并成了一个单元格。然后,我们使用 `range_boundaries()` 函数获取合并单元格的边界,并使用 `iter_rows()` 方法遍历拆分后的单元格。最后,我们在拆分后的单元格中写入数据,并将 Excel 文件保存到本地。
注意,当你将一个合并单元格拆分成多个单元格时,Excel 会自动调整其他单元格的位置和大小以适应新的单元格布局。
阅读全文