在日常的数据处理工作中,很多时候我们会遇到一个包含多个工作表(Sheet)的 Excel 文件,可能需要将每个工作表分别保存为独立的 Excel 文件。手动进行这种操作非常繁琐且易出错,但借助 Python 中的 pandas 库,我们可以非常方便地自动化这个过程。
在这篇博文中,我们将介绍如何使用 Python 将一个 Excel 文件中的每个工作表(Sheet)保存成单独的 Excel 文件。
1. 使用 pandas 库进行操作
除了 openpyxl,pandas 库也可以用来处理 Excel 文件。pandas 提供了非常简便的读取和写入 Excel 文件的方法,特别适合需要处理大量数据的场景。
2.1 安装 pandas 和 openpyxl
pandas 需要依赖 openpyxl 来处理 .xlsx 格式的文件。如果没有安装,可以通过以下命令一起安装:
pip install pandas openpyxl
2.2 代码实现
使用 pandas 来实现将 Excel 文件中的每个工作表保存为单独的文件的代码如下:
import pandas as pddef split_excel_sheet(input_file):# 读取 Excel 文件中的所有工作表xls = pd.ExcelFile(input_file)# 遍历每个工作表for sheet_name in xls.sheet_names:# 读取每个工作表的数据df = pd.read_excel(xls, sheet_name)# 保存每个工作表为单独的 Excel 文件new_file = f"{sheet_name}.xlsx"df.to_excel(new_file, index=False)print(f"工作表 '{sheet_name}' 已保存为 {new_file}")# 使用示例
input_file = '/path/to/example.xlsx' # 需要分割的 Excel 文件
split_excel_sheet(input_file)
2.3 代码解析
- 读取 Excel 文件:通过
pd.ExcelFile(input_file)读取整个 Excel 文件。 - 遍历工作表:通过
xls.sheet_names获取文件中的所有工作表名称,并遍历每个工作表。 - 读取工作表数据:使用
pd.read_excel()读取每个工作表的数据,并将其转换为 DataFrame 格式。 - 保存为单独的 Excel 文件:通过
df.to_excel()将每个工作表的数据保存为单独的 Excel 文件,index=False参数用于不保存行索引。
2.4 输出示例
和 openpyxl 实现类似,运行上面的代码后,程序会输出每个工作表被保存为单独 Excel 文件的消息。例如:
工作表 'Sheet1' 已保存为 Sheet1.xlsx
工作表 'Sheet2' 已保存为 Sheet2.xlsx
3. 总结
通过 Python 的 openpyxl 和 pandas 库,我们可以轻松地将一个 Excel 文件中的每个工作表保存为单独的 Excel 文件。pandas:适用于数据分析和处理,操作简便,尤其在处理数据量较大的 Excel 文件时非常高效。