当前位置:   article > 正文

利用openpyxl把多个sheet表合并成一个sheet表_openpyxl 合并sheet

openpyxl 合并sheet

        本章介绍openpyxl 的应用——把多个sheet表合并成一个sheet表。这里我们有一个各班成绩的随机生成的假数据,目的是把这5个sheet表合并成一个。

        直接上代码:

  1. import openpyxl
  2. file = openpyxl.load_workbook(r"D:\临时\python试验\openpyxl\把多个sheet表合并成一个sheet表.xlsx")
  3. sheets = file.worksheets # 获取文件中的所有sheet表
  4. new_sheet = file.create_sheet('各班合并后') # 在文件中新建一个表,用于存放合并后的数据
  5. new_sheet.append(['班级','姓名','语文','数学','英语','综合科']) # 先把表头加上
  6. for sheet in sheets:
  7. for row in sheet.iter_rows(2,sheet.max_row,1,sheet.max_column): # 从第二行开始,不包括表头
  8. row_list = [i.value for i in row]
  9. new_sheet.append(row_list)
  10. file.save(r"D:\临时\python试验\openpyxl\各班合并后.xlsx")

        要自己理解每一步的意思,不然表格变动一下就不知道怎么做了。

        第3行代码的顺序很重要,要先获取了文件的所有表,再创建新表。如果先创建了新表再获取所有表,那么后期写入时就会又再读取一遍新表,写入新表,这样就会导致数据重复。

        因为每一个表格都有表头,所以我们从第二行开始遍历。但是这样新表就没有表头了,所以先在新表中写入表头,然后再读取每班的表去写入数据。

        运行结果如下:

        你也可以灵活运用openpyxl,如合并完后把各班的表删除,只留下合并表 ;创建一个新文件,把合并表写入一个新excel文件里;把合并后的表的B1单元格冻结等,只要有想法,都可以进行尝试,尝试多了,自然就熟练并能灵活运用了。

        本文excel文件:链接:https://pan.baidu.com/s/1KVxFe3qNTYdu8GxT_CUHVg?pwd=f5zx 
提取码:f5zx

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/318010
推荐阅读
相关标签
  

闽ICP备14008679号