【openpyxl】处理合并单元格

  • 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')

posted @ 2026-08-15 10:07  Tony_xiao  阅读(18)  评论(0)    收藏  举报