Python实现Excel拆分sheet操作为文件

该文章提供了使用Python3.11.4版本读取并拆分Excel文件的步骤。首先,从官方站点下载Python,然后更改pip的安装源以提高速度。接着,安装pandas和openpyxl这两个依赖库。通过代码示例,演示了如何读取Excel文件的每个sheet,并将它们分别保存为新的Excel文件。

1.下载Python

https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe

2.换个安装源(快点)

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

2.按装依赖包

pip install pandas

pip install openpyxl

import os
import pandas as pd
# 读取Excel文件(文件要用英文名)
# excel_file = pd.ExcelFile('./'+os.listdir('./')[0])
excel_file = pd.ExcelFile('test.xlsx')
# 遍历文件中的每个sheet
for sheet_name in excel_file.sheet_names:
    # 读取sheet数据
    df = pd.read_excel(excel_file, sheet_name)
    # 保存为新的Excel文件
    df.to_excel(f'./{sheet_name}.xlsx', index=False)
    print(sheet_name,"拆分成功!")

 要文件来在同一目录(demo.py)

在目录>此电脑>demo 这个地址栏 输入

cmd

python demo.py

跟着就是等。。。

 

 

<think>我们参考了用户的引用内容,特别是引用[1]、[2]、[3]、[5]都涉及了将Excel文件sheet拆分成多个独立文件的功能。用户的需求是查找使用Python实现Excel表格sheet拆分功能的方法。 根据引用内容,我们可以采用两种主要方法: 1. 使用pandas库(如引用[3]所示) 2. 使用openpyxl库(如引用[5]所示) 此外,引用[2]提到了使用Spire.XLS for Python库,但这是一个第三方商业库,这里我们主要介绍开源的pandas和openpyxl方法。 下面别给出两种方法的详细步骤和代码示例。 ### 方法一:使用pandas拆分Excel(按sheet拆分) pandas是一个强大的数据处理库,可以方便地读取和写入Excel文件。 步骤: 1. 读取整个Excel文件(包含多个sheet) 2. 获取所有sheet的名称 3. 遍历每个sheet,将其单独保存为一个Excel文件 ```python import pandas as pd # 输入Excel文件路径 file_path = "待拆分Excel文件.xlsx" # 读取所有sheet all_sheets = pd.read_excel(file_path, sheet_name=None) # 遍历每个sheet for sheet_name, df in all_sheets.items(): # 将每个sheet的数据框保存为单独的Excel文件文件名使用sheet名称 output_file = f"{sheet_name}.xlsx" df.to_excel(output_file, index=False) print(f"已保存: {output_file}") ``` ### 方法二:使用openpyxl拆分Excel(按sheet拆分) openpyxl是一个专门操作Excel文件的库,适用于xlsx格式。 步骤: 1. 加载整个工作簿 2. 获取所有sheet的名称 3. 遍历每个sheet,创建一个新的工作簿,并将该sheet的内容复制过去,然后保存 ```python from openpyxl import load_workbook # 加载工作簿 file_path = "待拆分Excel文件.xlsx" wb = load_workbook(file_path) # 遍历每个sheet for sheet_name in wb.sheetnames: # 获取当前sheet sheet = wb[sheet_name] # 创建一个新的工作簿 new_wb = Workbook() new_sheet = new_wb.active # 复制原sheet的所有行到新sheet for row in sheet.iter_rows(): new_sheet.append([cell.value for cell in row]) # 保存新工作簿 output_file = f"{sheet_name}.xlsx" new_wb.save(output_file) print(f"已保存: {output_file}") ``` ### 注意事项 1. 两种方法都需要安装相应的库: - pandas: `pip install pandas openpyxl` - openpyxl: `pip install openpyxl` 2. 如果Excel文件中有复杂的格式(如图表、合并单元格等),使用pandas可能会丢失格式,而openpyxl可以保留部格式。但两者都不能完全保留所有格式(如条件格式、数据验证等),如果有复杂格式保留需求,可能需要使用其他库(如xlwings)。 3. 拆分后的文件将保存在当前工作目录中,文件名与sheet名相同。 ### 引用说明 以上方法参考了引用[3]和引用[5]中的实现思路[^3][^5]。 §§相关问题§§ 1. 如何拆分包含复杂格式的Excel工作簿? 2. 如何将Excel中的每个sheet拆分成独立的CSV文件? 3. 如何批量合并多个Excel文件中的同名sheet? </think> ### Python实现Excel表格Sheet拆分功能的方法 根据您的需求,我将介绍两种常用的Python实现方法(使用pandas和openpyxl),并提供详细步骤和代码示例。 --- ### 方法一:使用pandas库(推荐) 这是最高效的方法,适合处理数据量较大的Excel文件。 ```python import pandas as pd import os def split_excel_sheets(input_file, output_folder): """ 将Excel文件sheet拆分为独立文件 :param input_file: 输入Excel文件路径 :param output_folder: 输出文件夹路径 """ # 创建输出目录 os.makedirs(output_folder, exist_ok=True) # 读取所有sheet all_sheets = pd.read_excel(input_file, sheet_name=None) # 遍历每个sheet并保存 for sheet_name, df in all_sheets.items(): output_file = os.path.join(output_folder, f"{sheet_name}.xlsx") df.to_excel(output_file, index=False) print(f"已保存: {output_file}") # 使用示例 split_excel_sheets("原始文件.xlsx", "拆分结果") ``` **步骤说明:** 1. 使用`pd.read_excel(..., sheet_name=None)`读取所有工作表 2. 循环处理每个工作表 3. 使用DataFrame的`to_excel()`方法保存独立文件 4. 文件名自动使用原工作表名称 **优点**:代码简洁,处理速度快,支持xls/xlsx格式。 --- ### 方法二:使用openpyxl库 适合需要保留原始格式(如样式、公式等)的场景。 ```python from openpyxl import load_workbook import os def split_excel_with_openpyxl(input_file, output_folder): """ 保留原始格式的sheet拆分 :param input_file: 输入文件路径 :param output_folder: 输出文件夹 """ # 创建输出目录 os.makedirs(output_folder, exist_ok=True) # 加载工作簿 wb = load_workbook(input_file) # 遍历每个sheet for sheet_name in wb.sheetnames: # 创建新工作簿 new_wb = Workbook() new_sheet = new_wb.active # 复制原始sheet内容 source_sheet = wb[sheet_name] for row in source_sheet.iter_rows(): new_row = [] for cell in row: new_row.append(cell.value) new_sheet.append(new_row) # 保存文件 output_file = os.path.join(output_folder, f"{sheet_name}.xlsx") new_wb.save(output_file) print(f"已保存(保留格式): {output_file}") # 使用示例 split_excel_with_openpyxl("带格式的文件.xlsx", "拆分结果") ``` **适用场景:** - 需要保留单元格样式、公式等格式 - 处理包含图表的工作表 - 需要精确控制输出格式 --- ### 安装依赖库 ```bash # 安装pandas(包含openpyxl) pip install pandas openpyxl # 单独安装openpyxl pip install openpyxl ``` --- ### 注意事项 1. **文件名规范**:避免sheet名称包含特殊字符(如`\/:*?"<>|`) 2. **大文件处理**:超过100MB的文件建议块读取 3. **性能优化**:使用pandas时可通过`dtype`参数指定列数据类型加速读取 4. **错误处理**:添加异常捕获应对权限问题或损坏文件 > 以上方法参考了Python办公自动化中Excel处理的常用实践[^5]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值