复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

其它

【原创】python小工具-excel文件拆分

作者: whooyun发表于: 2025-08-30 10:39

import pandas as pd
import os

def split_excel_by_rows(input_file, output_dir, chunk_size=40000):
    """
    拆分Excel文件为多个子文件
    :param input_file: 原始Excel文件路径
    :param output_dir: 输出目录
    :param chunk_size: 每个文件最大行数(默认4万)
    """
    try:
        # 读取整个Excel文件
        df = pd.read_excel(input_file)
        total_rows = len(df)
       
        # 计算需要拆分的文件数量
        num_files = total_rows // chunk_size + (1 if total_rows % chunk_size else 0)
       
        # 准备基础文件名
        base_name = os.path.splitext(os.path.basename(input_file))[0]
        os.makedirs(output_dir, exist_ok=True)

        # 分块写入
        for i in range(num_files):
            start = i * chunk_size
            end = min((i+1)*chunk_size, total_rows)
           
            output_path = os.path.join(output_dir, f"{base_name}_part{i+1}.xlsx")
            df.iloc[start:end].to_excel(output_path, index=False)
            print(f"生成文件: {output_path} | 记录数: {end-start}")

        print(f"\n拆分完成 总文件数: {num_files} 总记录数: {total_rows}")

    except Exception as e:
        print(f"处理失败: {str(e)}")

# 使用示例
if __name__ == "__main__":
    # 修改为实际文件路径
    split_excel_by_rows(
        input_file=r"C:\Users\tt\Downloads\待导出文件 - 副本.xlsx",
        output_dir=r"D:\work_doc\data\0417-05"
    )