• Python 合并/拆分Excel


    python对于合并excel本篇文章给出合并xlsx文件的方法,xls的方法不在本文介绍

    拆分数据可以适用于xlsx或xls

    合并excel

            先读取所有的excel,得到df列表,在将这个df列表 按行进行合并

    1. import pandas as pd
    2. # 读取所有xlsx
    3. def read_xlsx(xlsx_list):
    4. """
    5. :param xlsx_list: xlsx文件列表
    6. :return:
    7. """
    8. if len(xlsx_list) == 0 or xlsx_list is None:
    9. print("没有任何xlsx文件,无法读取数据")
    10. return
    11. df_list = []
    12. for xlsx in xlsx_list:
    13. df = pd.read_excel(xlsx)
    14. df_list.append(df)
    15. return df_list
    16. # 合并xlsx
    17. def merge_xlsx(df_list):
    18. """
    19. :param df_list: df列表
    20. :return:
    21. """
    22. if len(df_list) == 0 or df_list is None:
    23. print("没有任何df,无法合并数据")
    24. return
    25. merged_df = pd.concat(df_list, axis=0)
    26. xlsx_path = "文件保存路径"
    27. merged_df.to_excel(xlsx_path, index=False)
    28. return xlsx_path
    29. file_list = ["xlsx文件路径1","xlsx文件路径2","xlsx文件路径3","xlsx文件路径4"]
    30. read_df_list = read_xlsx(file_list)
    31. merged_file = merge_xlsx(read_df_list)
    32. print(f"合并后的文件路径:{merged_file}")

    拆分excel

            按照指定的行数对原表的数据进行拆分,拆分的数据每一个表格会保留表头(标题行)

    1. import xlrd
    2. import xlwt
    3. import pandas as pd
    4. # 拆分数据
    5. def split_file(file_path):
    6. """
    7. 将传入的xls文件格式的表格进行,按照指定行数进行拆分
    8. :return: 返回拆分后的文件路径列表
    9. """
    10. if file_path is None:
    11. print("没有需要拆分的表格")
    12. return
    13. split_rows = 500 # 每个表拆分数据的行数
    14. wb = xlrd.open_workbook(file_path)
    15. sheet = wb.sheet_by_index(0)
    16. total_rows = sheet.nrows
    17. split_size = split_rows + 1
    18. header = sheet.row_values(0)
    19. # 拆分大于指定的长度的文件
    20. first_file = True
    21. for i in range(total_rows // split_size):
    22. if first_file: # 如果是第一个文件则从第二行开始(跳过表头)
    23. start_row = i * split_size + 1
    24. first_file = False
    25. else:
    26. start_row = i * split_size
    27. end_row = start_row + split_rows
    28. data = [sheet.row_values(j) for j in range(start_row, end_row)]
    29. filename = f'拆分的文件_{i + 1}.xls'
    30. workbook = xlwt.Workbook()
    31. sheet_new = workbook.add_sheet("Sheet1")
    32. for col_index, value in enumerate(header):
    33. sheet_new.write(0, col_index, value) # 写入表头
    34. for row_index, row in enumerate(data):
    35. for col_index, value in enumerate(row):
    36. sheet_new.write(row_index + 1, col_index, value) # 写入数据
    37. workbook.save(filename)
    38. print(f"拆分的文件路径:{filename}")
    39. your_file_path = "需要拆分的表格路径"
    40. split_file(your_file_path )

  • 相关阅读:
    多版本node的安装与切换详细操作
    触发器,寄存器,三态输出电路
    R语言方差分析的注意事项
    linux命令—awk(二)
    c语言程序范例
    Java之图书管理系统
    设计模式 | 工厂模式
    寒武纪“动荡”的 6 周年:CTO 梁军离职,市值蒸发 59 亿,核心技术人才仅剩 3 人
    无代码开发平台搭建的管理系统是什么样子?
    MybatisPlus搭建项目
  • 原文地址:https://blog.csdn.net/gongzairen/article/details/133064003