大家好,我们有时候经常会遇到需要将Excel表的多个sheet页合并成一个sheet的情况,并且有些人需要保留每个sheet页的表头,有些人不要表头,因此,我写了一个脚本,可以解决多个sheet合并成一个sheet的代码程序,可以自己调整是否需要表头(title的值),极大的方便了我们大多数朋友的需求。 这里主要用到的是python的两个库,一个是自带的os,另一个是openpyxl操作Excel的库,安装pipinstallopenpyxl。话不多说,上代码。 coding:UTF8导入所需模块importosfromopenpyxlimportWorkbookfromopenpyxlimportloadworkbookcwdos。getcwd()excelnamecwdtest01。xlsx需要汇总的表格地址表格名wbloadworkbook(excelname)获取workbook中所有的表格sheetswb。sheetnamesprint(需要汇总的excel中所有sheet页名称为:,sheets)创建一个汇总excel文件huizongpathcwd汇总。xlsxhuizongsheet汇总结果wbnewWorkbook()实例化创建一个Excel表,其中默认的sheet页名为sheetwsnewwbnew。createsheet(huizongsheet,0)加上0使得,创建的汇总结果sheet页放在最开始位置wbnew。save(huizongpath)汇总每个sheet页需要表头几行,如:0表示只需要第一个sheet页表头,其他不需要;1表示需要每个sheet页的第一行表头提取sheet页第一页所有数据wb1loadworkbook(huizongpath)sheet1wb1〔huizongsheet〕wswb〔sheets〔0〕〕foriinrange(ws。maxrow):forjinrange(ws。maxcolumn):sheet1。cell(i1,j1)。valuews。cell(i1,j1)。valuewb1。save(huizongpath)第二个sheet页数据复制到汇总excel表deftongji():forxinrange(1,len(sheets)):wb1loadworkbook(huizongpath)sheet1wb1〔huizongsheet〕msheet1。maxrow1sheetwb〔sheets〔x〕〕foriinrange(sheet。maxrow):forjinrange(sheet。maxcolumn):sheet1。cell(mi,j1)。valuesheet。cell(sheettitlei1,j1)。valuewb1。save(huizongpath)print(第str(x1)个sheet页表格数据保存成功!)title0如:0表示只需要第一个sheet页表头,其他不需要;1表示需要每个sheet页的第一行表头iftitle0:第二个sheet页开始,不保留第一行表头sheettitletitle1tongji()eliftitle1:sheettitletitle第二个sheet页开始,保留第一行表头tongji()eliftitle2:sheettitletitle1第二个sheet页开始,保留到第二行表头tongji()eliftitle3:sheettitletitle2第二个sheet页开始,保留到第三行表头tongji()else:print(未设置保存三行以上表头,如有需要请联系作者,谢谢) 有任何问题可以评论留言,如有想看的操作讲解,可以私信我。谢谢大家的点赞、关注和转发。