对excel中的合并单元格进行拆分并填充内容
评论
收藏

对excel中的合并单元格进行拆分并填充内容

经验分享
菜籽
2025-02-10 14:10·浏览量:1227
菜籽
发布于 2025-02-10 14:101227浏览

一、需拆分的单元格均只在某一列上,填充列上第一个合并单元格的数据

1、参考案例:


2、实现方法:

注意:’自动向下填充‘指令的填充类型需选拷贝填充


二、*通用 需拆分的单元格不限行列,根据每个合并单元格内容向下填充(即实现excel中‘拆分并填充内容’的功能)

1、参考案例:


2、实现方法:

(1)先获取合并单元格的范围,得到对应起始、结束行列和单元格内的值

           这部分使用代码实现,代码如下:

import openpyxl as xl
from openpyxl.worksheet.worksheet import Worksheet
from openpyxl.cell import MergedCell

#定义回调函数
#传入值为文件路径和sheet页
def merged_callback(file_path,sheet):
    wb = xl.load_workbook(file_path)  # 加载工作簿
    sheet = wb[sheet]  # 通过工作表名称获取工作表对象
    merged_ranges = sheet.merged_cell_ranges  # 获取当前工作表的所有合并单元格范围列表
    # print(merged_ranges)

    merged_list = []
    for merged_range in merged_ranges:
        # print(type(merged_range))  # 打印区域对象类型
        min_row = merged_range.min_row  #起始行
        max_row = merged_range.max_row  #结束行
        min_col = merged_range.min_col  #起始列
        max_col = merged_range.max_col  #结束列
        
        # 获取合并单元格范围中左上角(即最小行和最小列)的单元格对象
        cell = sheet.cell(row = merged_range.min_row,column =merged_range.min_col)
        # print(cell.value)
        temp_list = [cell.value,min_col,min_row,max_col,max_row]
        merged_list.append(temp_list)
    return merged_list

(2)调用模块传入对应参数后,获取当前合并单元格的位置,然后循环起始结束行、列号,得到合并单元格里的小单元格位置,再写入对应的单元格数据。 指令如下:

收藏18
全部评论1
最新
发布评论
评论