近期学习了openpyxl的用法,发现居然没有【复制、粘贴】这么基础的函数。而且若要用python带格式复制粘贴指定区域的单元格,参考资料更少。
于是参考各路大佬的笔记,整合如下。
本代码只完成一次复制粘贴,各位可根据自己的需要加以利用,比如:可搭配遍历文件等实现多个excel中指定区域的复制,并汇总于指定区域的内容。
# 复制区域cell、带格式粘贴: 比如把a1:f16带格式复制粘贴到h23:m38
#导入包
import openpyxl
import copy
#path单引号内放入指定要操作的excel的路径 (本文举例的复制与粘贴,位于同一excel的同一sheet)
path = r'E:\OneDrive\Python_Note\Excel操作\03\反馈表-小寨支行.xlsx'
wb = openpyxl.load_workbook(path)
ws = wb.active #本行代码意思是指定ws为当前在excel中处于选中状态的sheet为ws。
#若excel内有多个sheet,建议使用ws=wb['sheet的名字']
#以字符串输入复制、粘贴的区域,如'a1:f16','h23:m38'(必须大小一致)
Source_Area = 'a1:f16'
Target_Area = 'h23:m38'
#分别指定复制和粘贴所在sheet的位置(本文复制粘贴的单元格区域都在ws内,ws是什么在上面已经指定好)
source_area = ws[Source_Area]
target_area = ws[Target_Area]
#创造source_cell_list,用以和target_cell_list一