赞
踩
从一个excel表复制插入多行数据到另一个excel表中
其实就是把行范围内的所有单元格(包括单元格格式和内容)复制到另一个表中,其中值(value)和单元格数字格式(number_format)可以直接复制值,用等号连接即可。其他格式,例如字体格式(font)、对齐方式(alignment)、填充(fill)、边框(border)属性,需要用到深拷贝也就是copy方法。
更多单元格样式的操作可以去看官方文档:https://openpyxl.readthedocs.io/en/stable/styles.html
中文官方文档:https://openpyxl-chinese-docs.readthedocs.io/zh_CN/latest/styles.html
from copy import copy import openpyxl as xl ''' @Desc : 复制插入多行数据 @param1 : copy_path = 要复制的文件路径 copy_sheet_name = 要复制的工作表名称 copy_rows_start = 需要复制的开始行 insert_path = 需要插入的文件路径 insert_sheet_name = 需要插入的工作表 insert_rows_start = 需要插入的开始行 num = 复制的行数 @return : None ''' def insert_multi_row(copy_path,copy_sheet_name,copy_rows_start,insert_path,insert_sheet_name,insert_rows_start,num): copy_rows_start = int(copy_rows_start) insert_rows_start = int(insert_rows_start) num = int(num) try: #打开要操作的工作簿 wb_copy = xl.load_workbook(copy_path) wb_insert = xl.load_workbook(insert_path) #打开对应工作表 if copy_sheet_name == '': ws_copy = wb_copy.active else: ws_copy = wb_copy[copy_sheet_name] if insert_sheet_name == '': ws_insert = wb_insert.active else: ws_insert = wb_insert[insert_sheet_name] except Exception as e: print('工作表不存在!') # 遍历每一行,循环插入数据 for i in range(num): insert_rows = insert_rows_start + i copy_rows = copy_rows_start + i ws_insert.insert_rows(insert_rows) #指定行号先插入空白行 cols = ws_copy.max_column #获取列数 for i in range(1,cols): #复制一行数据粘贴到另一行 #单元格值及内容复制粘贴 ws_insert.cell(insert_rows, i).value = ws_copy.cell(copy_rows, i).value ws_insert.cell(insert_rows, i).number_format = ws_copy.cell(copy_rows, i).number_format ws_insert.cell(insert_rows, i).font = copy(ws_copy.cell(copy_rows, i).font) ws_insert.cell(insert_rows, i).alignment = copy(ws_copy.cell(copy_rows, i).alignment) ws_insert.cell(insert_rows, i).fill = copy(ws_copy.cell(copy_rows, i).fill) ws_insert.cell(insert_rows, i).border = copy(ws_copy.cell(copy_rows, i).border) #行高调整 ws_insert.row_dimensions[insert_rows + 1].height = ws_insert.row_dimensions[insert_rows].height ws_insert.row_dimensions[insert_rows].height = ws_copy.row_dimensions[copy_rows].height wb_insert.save(insert_path)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。