当前位置:   article > 正文

使用openpyxl包合并两个excle表格(多个sheet表单)_python workbook1 = open_xls(allxls[0]) #打开文件test1

python workbook1 = open_xls(allxls[0]) #打开文件test1 workbook2 = open_xls(a

表一的sheet1:

                                     

表一的sheet2:

                                                    

表二:

                                                    

合并结果:

                                                     

使用列表存储文件名

allxls是等待合并的两个文件

将合并的内容放入endxls中

  1. # 使用列表存储所有的文件名
  2. allxls = ["F:/test1.xlsx", "F:/test2.xlsx"]
  3. endxls = "F:/test3.xlsx"

打开excle文件

  1. def open_xls(file):
  2. try:
  3. # 打开excle文件,获取工作簿对象
  4. workbook = openpyxl.load_workbook(file)
  5. return workbook
  6. except Exception as er:
  7. print("打开出错,错误为:" + er)
从工作簿中获取表单对象
  1. # 从工作簿中获取表单对象 ['信1601-1', '信1601-2']
  2. def get_sheet(workbook):
  3. sheet = workbook.sheetnames
  4. return sheet

完整代码

  1. # 使用openpyxl包,可以进行修改,文件原内容不变
  2. import openpyxl
  3. # 使用列表存储所有的文件名
  4. allxls = ["F:/考研复试准备/数据挖掘自学/test1.xlsx", "F:/考研复试准备/数据挖掘自学/test2.xlsx"]
  5. endxls = "F:/考研复试准备/数据挖掘自学/test3.xlsx"
  6. def open_xls(file):
  7. try:
  8. # 打开excle文件,获取工作簿对象
  9. workbook = openpyxl.load_workbook(file)
  10. return workbook
  11. except Exception as er:
  12. print("打开出错,错误为:" + er)
  13. # 从工作簿中获取表单对象 ['信1601-1', '信1601-2']
  14. def get_sheet(workbook):
  15. sheet = workbook.sheetnames
  16. return sheet
  17. cellvalue = [] #使用一个list存储读取到的数据
  18. fnum = 0 #sheet表单个数
  19. rnum = 0 #总行数
  20. workbook1 = open_xls(allxls[0]) #打开文件test1
  21. workbook2 = open_xls(allxls[1]) #打开文件test2
  22. workbook3 = open_xls(endxls) #打开文件test3
  23. sheets1 = get_sheet(workbook1) #获得表单名
  24. sheets2 = get_sheet(workbook2) #获得表单名
  25. # 获取每个单元格的值
  26. for sheet_num in sheets1:
  27. # 按顺序获取某个表单
  28. sheet = workbook1[sheets1[fnum]]
  29. fnum += 1
  30. for row in sheet.rows:
  31. rnum += 1
  32. for cell in row:
  33. cellvalue.append(cell.value)
  34. for sheet_num in sheets2:
  35. sheet = workbook2[sheets2[fnum]]
  36. fnum += 1
  37. for row in sheet.rows:
  38. rnum += 1
  39. for cell in row:
  40. cellvalue.append(cell.value)
  41. sheet = workbook3.active
  42. count = 0
  43. for j in range(0, rnum):
  44. for k in range(0, 3):
  45. sheet.cell(row=j + 1, column=k + 1).value = cellvalue[j * 3 + k]
  46. workbook3.save('test3.xlsx')

 

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

闽ICP备14008679号