使用Python将Excel合并的单元格内容拆分到每一行中

最近遇到一个Excel表格的问题类似如下情况,需要把合并单元格之后的一年级拆分成每个行里面有一年级,一直做太麻烦,于是想用Python自动解决,百度了一堆代码没一个能直接用的,要不是就是一堆报错,所以想着还不如自己写一个Python解决。

使用Python将Excel合并的单元格内容拆分到每一行中_第1张图片

 

import openpyxl

# 打开工作簿并获取sheet
wb = openpyxl.load_workbook('select.xlsx')
sheet = wb['Sheet1']

# 复制一份合并单元格集合的副本
merged_cells = set(sheet.merged_cells.ranges)

# 遍历每个合并单元格
for merged_cell in merged_cells.copy():
    # 获取合并单元格的值
    merged_value = sheet.cell(row=merged_cell.min_row, column=merged_cell.min_col).value

    # 拆分合并单元格
    sheet.unmerge_cells(str(merged_cell))

    # 将值分配给每个单元格
    for row in range(merged_cell.min_row, merged_cell.max_row + 1):
        for column in range(merged_cell.min_col, merged_cell.max_col + 1):
            cell = sheet.cell(row=row, column=column)
            cell.value = merged_value

# 保存工作簿
wb.save('new_select.xlsx')

有相应的注释,只要安装openpyxl包并输入需要的Excel文件和输出新的Excel文件格式即可直接运行,没有报错!!!

之后效果图就不放了,就是变成了每一行都有合并单元格里面的信息,如“一年级”“xx”这种,每一行都有了,很方便不用再用Excel指令做了。

你可能感兴趣的:(excel,python,开发语言)