当前位置:   article > 正文

Python利用openpyxl合并多个Excel工作簿或多个工作表_python openxl excel多sheet合并

python openxl excel多sheet合并

针对合并多个Excel工作簿或多个工作簿,我们可以使用os,openpyxl库进行实现。

其中list_sh = old_sh.iter_rows(values_only=True)中values_only可以选择True,直接导出单元格的value值
  1. import os
  2. import openpyxl
  3. path_ = input("请输入需要合并Excel文件的文件夹路径:")
  4. wb_new = openpyxl.Workbook()
  5. sheets = wb_new.active
  6. sheets.title = '合并数据'
  7. if os.path.isfile(path_):
  8. cell_bg = int(input('请输入Excel表头的行数:'))
  9. path_2 = input('请输入保存的路径:')
  10. sh_name_2 = input('请输入保存的名称:')
  11. wb_old = openpyxl.load_workbook(path_)
  12. sh_old_list = wb_old.sheetnames
  13. for sh in sh_old_list:
  14. old_sh = wb_old[sh]
  15. print(old_sh)
  16. if sheets.max_row == 1:
  17. list_sh = old_sh.iter_rows(values_only=True) # iter_rows()中values_only=True表示返回单元格的值,false 表示返回生成器
  18. else:
  19. list_sh = old_sh.iter_rows(min_row=cell_bg + 1, values_only=True)
  20. # list_sh=[[],[],[]]
  21. for i in list_sh:
  22. sheets.append(i)
  23. if sh_name_2 == '':
  24. sh_name_2 = '合并数据'
  25. if path_2 == '':
  26. path_2 = path_.rsplit('\\', 1)[0]
  27. wb_new.save(path_2 + '\\' +'{}.xlsx'.format(sh_name_2))
  28. else:
  29. sh_name = input('请输入需要合并的工作表名称:')
  30. cell_bg = int(input('请输入Excel表头的行数:'))
  31. path_2 = input('请输入保存的路径:')
  32. sh_name_2 = input('请输入保存的名称:')
  33. # 获取文件夹中的文件名称
  34. list_ex = os.listdir(path_)
  35. for ls in list_ex:
  36. print('正在合并{}'.format(ls))
  37. wb_old = openpyxl.load_workbook(path_ + '\\' + ls)
  38. old_sh = wb_old[sh_name]
  39. # 判断当前工作表是否为第一个工作表,若不是则从表头后的下一行开始
  40. if sheets.max_row == 1:
  41. list_sh = old_sh.iter_rows(values_only=True) # iter_rows()中values_only=True表示返回单元格的值,false 表示返回生成器
  42. else:
  43. list_sh = old_sh.iter_rows(min_row=cell_bg + 1, values_only=True)
  44. # list_sh=[[],[],[]]
  45. for i in list_sh:
  46. sheets.append(i)
  47. if path_2 == '':
  48. path_2 = path_
  49. if sh_name_2 == '':
  50. sh_name_2 = '合并数据'
  51. wb_new.save(path_2 + '\\' + '{}.xlsx'.format(sh_name_2))
  52. print('合并完成.....')
  53. stop_ = input('输入任意键值关闭窗口........')

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

闽ICP备14008679号