当前位置:   article > 正文

python利用openpyxl合并excel一个或多个工作薄,每个工作薄可含一个或多个工作表_pip install --upgrade openpyxl

pip install --upgrade openpyxl

办公中经常会遇到合并excel的情况,人工挨个复制很烦还容易出错,所以就想到了python和openpyxl。参考了几个大模型给出的代码,发现没那么难,整理后得出了本文的代码。本文代码可合并excel一个或多个工作薄,每个工作薄可含一个或多个工作表。

将需要合并的excel文档全部放在一个文件夹,以下代码保存.py文件后放在此文件夹。无需更改任何代码,直接运行。代码运行结束后会在文件夹中生成一个名为merged_file.xlsx的excel文档,这个文档就是所有工作簿所有工作表合并后的文档。合并后的文档,即merged_file.xlsx,第一列为每一行数据对应的工作薄和工作表的名字。

openpyxl需要升级为最新版。升级方法如下:

徽标键+R呼出运行窗口;输入cmd,呼出命令行窗口,运行命令pip install --upgrade openpyxl

本文持续更新,如有其他需求可在评论区留言。

  1. import os
  2. import openpyxl
  3. from openpyxl import load_workbook
  4. from openpyxl.utils import get_column_letter
  5. def merge_excel_files(input_folder, output_file):
  6. # 获取输入文件夹中的所有Excel文件
  7. excel_files = [f for f in os.listdir(input_folder) if f.endswith('.xlsx') or f.endswith('.xls')]
  8. print(excel_files)
  9. # 创建一个新的工作簿用于存储合并后的数据
  10. merged_workbook = openpyxl.Workbook()
  11. merged_sheet = merged_workbook.active
  12. i=0
  13. # 遍历所有Excel文件
  14. for file in excel_files:
  15. # 打开当前Excel文件
  16. workbook = openpyxl.load_workbook(os.path.join(input_folder, file))
  17. i= i+1
  18. print("序列",'{0:>5}'.format(i),file)
  19. sheet_names = workbook.sheetnames
  20. for sheet_name in sheet_names:
  21. sheet = workbook[sheet_name]
  22. # 获取当前工作表的最大行和列
  23. max_row = sheet.max_row
  24. max_col = sheet.max_column
  25. for row in sheet.iter_rows(values_only=True):
  26. a = list(row)
  27. a.insert(0,file+'-'+sheet_name)
  28. a = tuple(a)
  29. row = a
  30. merged_sheet.append(row)
  31. # 将当前工作表的数据复制到合并后的工作表中
  32. ## for row in range(1, max_row + 1):
  33. ## for col in range(1, max_col + 1):
  34. ## cell = sheet.cell(row=row, column=col)
  35. ## merged_sheet.cell(row=row, column=col).value = cell.value
  36. ##
  37. # 保存合并后的工作簿
  38. merged_workbook.save(output_file)
  39. # 使用示例
  40. input_folder = os.getcwd()
  41. output_file = 'merged_file.xlsx'
  42. merge_excel_files(input_folder, output_file)
  43. print('ok')

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

闽ICP备14008679号