当前位置:   article > 正文

python遍历一个文件夹下所有excel,读取所有sheet页,然后写入另一个文件夹下对应模板的excel中_用python检查excel文件中所有的sheet页

用python检查excel文件中所有的sheet页

本来想直接写入,但是我们的excel报表太麻烦了,里面表头有多处要求合并的,用python去写太要命了,想了下,设置一堆空的excel模板,这样只需要把原文件的数据读出来就可以了,简单多了

  1. #读取文件夹下所有的excel,并遍历所有的sheet页,然后把读取的数据增加跳转列后保存到新的文件夹对应文件中,
  2. # https://blog.csdn.net/qq_38140292/article/details/121134465
  3. import pandas as pd
  4. import os
  5. from openpyxl import Workbook,load_workbook
  6. from openpyxl.styles import *
  7. dfs=pd.DataFrame()
  8. oldPath = r'E:\aaa\2020aaa\excelOLD'
  9. newPath = r'E:\aaa\2020aaa\excelNEW'
  10. # 先遍历旧的文件夹,读取数据
  11. for root_dir,sub_dir,files in os.walk(oldPath):
  12. for fileName in files:
  13. if fileName.endswith(".xlsx"):
  14. #构造绝对路径
  15. filePath = os.path.join(root_dir, fileName)
  16. print('filePath:' + filePath)
  17. #读取sheet页
  18. for sheetName in pd.read_excel(filePath,sheet_name=None).keys():
  19. print('sheet_name:' + sheetName)
  20. df = pd.read_excel(filePath,sheet_name=sheetName)
  21. # 获取所有的数据,返回的是一个list
  22. value = df.values
  23. # print(value)
  24. cols = ['=HYPERLINK("https://www.cnpython.com/qa/76641", ">>>")' for i in range(df.index.values.size)]
  25. df2 = pd.DataFrame({"跳转": cols})
  26. result = pd.concat([df, df2], axis=1)
  27. print(result)
  28. newFilePath = os.path.join(newPath, fileName)
  29. book = load_workbook(newFilePath)
  30. # sheet = book.get_sheet_by_name(sheetName) #会有红色错误提示,不影响使用
  31. sheet = book[sheetName]
  32. row_num = sheet.max_row
  33. print('row_num:' + str(row_num))
  34. # address = "A3" # 数据插入的起始行和列,比如源数据插入是第四行,那就是"A4“,但是我们迁移去掉了表头,所以需要减1,设置为"A3"
  35. address = 'A' + str(row_num)
  36. start_row, start_col = sheet[address].row - 1, sheet[address].column - 1
  37. for i, row in enumerate(result.values, 2):
  38. for j, v in enumerate(row, 1):
  39. sheet.cell(start_row + i, start_col + j).value = v
  40. # thin 细框线,thick粗线
  41. sheet.cell(start_row + i, start_col + j).border = Border(left=Side(style='thin'), bottom=Side(style='thin'),
  42. right=Side(style='thin'), top=Side(style='thin'))
  43. book.save(newFilePath)

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号