【Python办公自动化系列-编程小白必看】将Excel文件拆分成多个含有单个工作表的文件操作秘籍一文全掌握

系列文章目录

【Python办公自动化系列-编程小白必看】将Excel文件拆分成多个含有单个工作表的文件操作秘籍🔥一文全掌握


前言

嘿,小伙伴们!今天我要带大家走进Python处理Excel文件的世界,特别关注如何将一个Excel文件拆分成多个含有单个工作表的文件。
跟着我一起,轻松掌握这些实战技巧!


一、准备工作

在开始之前,请确保安装了必要的库。我们将使用 openpyxl 库来处理 Excel 文件。如果你还没有安装此库,可以通过以下命令安装:

代码如下(示例):

pip install openpyxl

二、操作案例

1.拆分 Excel 文件

我们将使用一个函数 split_excel_by_sheets 来实现这一功能。该函数接受输入文件路径和输出文件夹路径作为参数,并将每个工作表保存为单独的 Excel 文件。
通过复制原始Excel文件并逐个删除不需要的工作表来拆分每个工作表。 这种方法尽量保持每个工作表的原有格式不变。

代码如下(示例):

from openpyxl import load_workbook
import shutil
import os

def split_excel_by_sheets(input_file, output_folder):
    
    # 加载工作簿
    wb = load_workbook(input_file)
    
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    # 遍历每个工作表
    for sheet_name in wb.sheetnames:
        # 复制原始文件作为新文件的基础
        # 使用 os.path.join 来构建文件路径,确保跨平台兼容性
        temp_file = os.path.join(output_folder, f"temp_{sheet_name}.xlsx")
        shutil.copy(input_file, temp_file)
        
        # 再次加载复制的文件,以便进行编辑
        temp_wb = load_workbook(temp_file)
        
        # 删除除目标工作表外的所有其他工作表
        # 获取除了当前工作表之外的所有工作表名称
        sheets_to_remove = [s for s in temp_wb.sheetnames if s != sheet_name]
        for sheet_to_remove in sheets_to_remove:
            del temp_wb[sheet_to_remove]
        
        # 保存处理后的文件,此时仅包含目标工作表
        # 构建最终输出文件的路径
        final_output_file = os.path.join(output_folder, f"{sheet_name}.xlsx")
        # 保存工作簿
        temp_wb.save(final_output_file)
        # 关闭工作簿以释放资源
        temp_wb.close()
        # 删除临时文件
        os.remove(temp_file)
        
        # 打印完成信息
        print(f"工作表 '{sheet_name}' 已保存为 '{final_output_file}'")

if __name__ == '__main__':
    # 示例用法
    input_excel = 'D:\\developer\\临时文件\\file\\py\\excel\\外贸表格202303.xlsx'
    output_directory = 'D:\\developer\\临时文件\\file\\py\\excel\\split_sheets'
    # 调用函数,传入输入文件路径和输出文件夹路径
    split_excel_by_sheets(input_excel, output_directory)

2.解析代码

让我们详细解析一下这段代码:

1.导入必要的库:

openpyxl:用于读取和写入 Excel 文件。
shutil:用于文件操作,如复制文件。
os:用于操作系统相关的功能,如创建文件夹。

2.定义函数:

split_excel_by_sheets: 接受输入文件路径和输出文件夹路径作为参数。
加载工作簿,并确保输出文件夹存在。
对于每个工作表,复制原始文件,删除不需要的工作表,并保存结果。

3.运行示例:

设置输入文件路径和输出文件夹路径。
调用 split_excel_by_sheets 函数。

3.注意事项

1.确保权限:确保你有权限访问指定的输入文件和输出文件夹。
2.内存消耗:openpyxl 默认会将整个工作簿加载到内存中,这意味着如果文件很大,可能会消耗大量的内存。
3.读取速度:读取大型文件的速度可能会很慢,因为 openpyxl 需要解析整个文件的内容。
4.写入速度:当写入大型文件时,尤其是当涉及到大量数据的更新时,速度也会受到影响。


总结

希望这篇教程能帮助你在日常工作中更高效地处理 Excel 数据。如果你有任何疑问或遇到具体问题,欢迎随时提问!
如果有任何疑问或建议,请随时留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值