拆分所有合并单元格,并赋予合并之前的值。

def unmerge_and_fill_cells(worksheet):
    '获取所有合并单元格的范围'
    all_merged_cell_ranges = list(
        worksheet.merged_cells.ranges
    )

    '遍历每个合并单元格的范围'
    for merged_cell_range in all_merged_cell_ranges:
        '获取合并单元格的起始单元格'
        merged_cell = merged_cell_range.start_cell
        
        '拆分合并单元格'
        worksheet.unmerge_cells(range_string=merged_cell_range.coord)

        '遍历合并单元格的每个单元格'
        for row_index, col_index in merged_cell_range.cells:
            '获取单元格'
            cell = worksheet.cell(row=row_index, column=col_index)
            
            '将合并之前的值赋给单元格'
            cell.value = merged_cell.value

'读取原始xlsx文件,拆分并填充单元格,然后生成中间临时文件。'
def unmerge_cell(filename):
    '加载xlsx文件'
    wb = openpyxl.load_workbook(filename)
    
    '遍历每个工作表'
    for sheet_name in wb.sheetnames:
        '获取工作表'
        sheet = wb[sheet_name]
        
        '拆分并填充单元格'
        unmerge_and_fill_cells(sheet)
    
    '生成中间临时文件名'
    filename = filename.replace('.xls', '_temp.xls')
    
    '保存工作簿到中间临时文件'
    wb.save(filename)
    
    '关闭工作簿'
    wb.close()

if __name__ == '__main__':
    '调用函数:读取原始xlsx文件,拆分并填充单元格,然后生成中间临时文件。'
    unmerge_cell(filename)

原文地址: https://www.cveoy.top/t/topic/p4TH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录