码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 )

  • 相关阅读:
    vue的diff算法
    Leetcode 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数
    菱形(曼哈顿距离) C++实现
    大数据ClickHouse(十九):Flink 写入 ClickHouse API
    分享一个由systemd管理tomcat的tomcat.service文件的编写
    如何利用ChatGPT进行论文撰写?
    【教学类-36-10】20230908方脸爷爷和圆脸奶奶(midjounery-niji)(中班:《我爱我家》数:连线、涂色)
    使用Badboy录制生成 JMeter 脚本
    vscode中提升效率的插件扩展——待更新
    pdd.order.information.get拼多多店铺订单详情接口(店铺订单交易接口,店铺订单明文接口,店铺订单解密接口)代码对接教程
  • 原文地址:https://blog.csdn.net/gongzairen/article/details/133064003
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号