多个sheet分别合并到一个excel(Excel多个sheet页合并成一个sheet)

大家好,我们有时候经常会遇到需要将Excel表的多个sheet页合并成一个sheet的情况,并且有些人需要保留每个sheet页的表头,有些人不要表头,因此,我写了一个脚本,可以解决多个sheet合并成一个sheet的代码程序,可以自己调整是否需要表头(title的值),极大的方便了我们大多数朋友的需求,我来为大家科普一下关于多个sheet分别合并到一个excel?以下内容希望对你有帮助!

多个sheet分别合并到一个excel(Excel多个sheet页合并成一个sheet)

多个sheet分别合并到一个excel

大家好,我们有时候经常会遇到需要将Excel表的多个sheet页合并成一个sheet的情况,并且有些人需要保留每个sheet页的表头,有些人不要表头,因此,我写了一个脚本,可以解决多个sheet合并成一个sheet的代码程序,可以自己调整是否需要表头(title的值),极大的方便了我们大多数朋友的需求。

这里主要用到的是python的两个库,一个是自带的os,另一个是openpyxl操作Excel的库,安装pip install openpyxl。话不多说,上代码。

# -*- coding: UTF-8 -*- #导入所需模块 import os from openpyxl import Workbook from openpyxl import load_workbook cwd = os.getcwd() excel_name = cwd '\\test01.xlsx' #需要汇总的表格地址 表格名 wb = load_workbook(excel_name) # 获取workbook中所有的表格 sheets = wb.sheetnames print("需要汇总的excel中所有sheet页名称为:", sheets) #创建一个汇总excel文件 huizong_path = cwd "\\汇总.xlsx" huizong_sheet = "汇总结果" wb_new = Workbook()#实例化创建一个Excel表,其中默认的sheet页名为“sheet” ws_new = wb_new.create_sheet(huizong_sheet,0)#加上0使得,创建的“汇总结果”sheet页放在最开始位置 wb_new.save(huizong_path) #汇总每个sheet页需要表头几行,如:0表示只需要第一个sheet页表头,其他不需要;1表示需要每个sheet页的第一行表头 #提取sheet页第一页所有数据 wb1 = load_workbook(huizong_path) sheet1 = wb1[huizong_sheet] ws = wb[sheets[0]] for i in range(ws.max_row): for j in range(ws.max_column): sheet1.cell(i 1, j 1).value = ws.cell(i 1, j 1).value wb1.save(huizong_path) #第二个sheet页数据复制到汇总excel表 def tongji(): for x in range(1, len(sheets)): wb1 = load_workbook(huizong_path) sheet1 = wb1[huizong_sheet] m = sheet1.max_row 1 sheet = wb[sheets[x]] for i in range(sheet.max_row): for j in range(sheet.max_column): sheet1.cell(m i, j 1).value = sheet.cell(sheet_title i 1, j 1).value wb1.save(huizong_path) print("第" str(x 1) '个sheet页表格数据保存成功!') title = 0 #如:0表示只需要第一个sheet页表头,其他不需要;1表示需要每个sheet页的第一行表头 if title == 0:#第二个sheet页开始,不保留第一行表头 sheet_title = title 1 tongji() elif title == 1: sheet_title = title#第二个sheet页开始,保留第一行表头 tongji() elif title == 2: sheet_title = title - 1#第二个sheet页开始,保留到第二行表头 tongji() elif title == 3: sheet_title = title - 2#第二个sheet页开始,保留到第三行表头 tongji() else: print("未设置保存三行以上表头,如有需要请联系作者,谢谢")

有任何问题可以评论留言,如有想看的操作讲解,可以私信我。谢谢大家的点赞、关注和转发。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页