- 1.当我们读取excel中的数据,某一些列存在合并数据,A1-A4是合并的,逐行读取时,只有A1是有数据的,其它行读取出来为None。
- 2.话不多说,直接看效果
![image]()
- 3.代码示例
from openpyxl import Workbook,load_workbook
wb = load_workbook('xuexi.xlsx')
sheet = wb['ceshi001']
"""获取页面内所有已合并的单元格"""
list_ranges = sheet.merged_cells.ranges.copy()
print(list_ranges) # {<MergedCellRange A4:A6>, <MergedCellRange C7:C10>, <MergedCellRange A2:A3>, <MergedCellRange A7:A10>, <MergedCellRange C2:C3>, <MergedCellRange C4:C6>}
print(type(list_ranges)) # <class 'set'>
"""遍历每个含有合并单元格的区域"""
for range in list_ranges: # range:<class 'openpyxl.worksheet.merge.MergedCellRange'>
"""该区域内的起始单元格"""
cell_start = range.start_cell # <class 'openpyxl.cell.cell.Cell'>
"""将该区域内的单元格进行拆分"""
sheet.unmerge_cells(range_string=range.coord)
"""遍历该区域内的所有(拆分后得到的)单元格"""
for row_index, col_index in range.cells:
cell = sheet.cell(row=row_index, column=col_index)
cell.value = cell_start.value
wb.save('xuexi001.xlsx')