用python的openpyxl库进行合并单元格的拆分,随手记录,如下
openpyxl 3.0.10
pandas 2.1.1
python 3.9.13
import pandas as pd
import openpyxl
def unmerge_cell(excel_name, sheet_name):
# 打开工作簿并获取sheet
wb = openpyxl.load_workbook(excel_name)
sheet = wb[sheet_name]
merged_cells = list(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('temp.xlsx')
if __name__ == '__main__':
excel_name = 'work.xlsx'
sheet_name = 'sheet_1'
unmerge_cell(excel_name, sheet_name)
df = pd.read_excel(excel_name, sheet_name=sheet_name)
print(df) # 打印表格查看拆分是否成功!