Excel工作表拆分:如何将多Sheet工作簿拆分为独立文件
发布于 2 个月前·
1 人看过
背景问题
在日常工作中,我们经常会遇到这样的场景:一个Excel文件包含多个工作表(Sheet),需要将每个工作表导出为独立的Excel文件。这种需求通常出现在:
数据分发场景,需要将不同工作表发送给不同的部门
数据整理场景,需要将合并的工作簿拆分为独立文件
批量处理场景,需要对每个工作表进行独立操作
from openpyxl import load_workbook
import os
import shutil
def split_excel_sheets(input_file, output_folder):
# 创建输出文件夹(如果不存在)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 加载工作簿
print(f"正在加载文件: {input_file}")
wb = load_workbook(input_file)
# 获取所有工作表名称
sheet_names = wb.sheetnames
# 遍历每个工作表
for sheet_name in sheet_names:
# 创建输出文件路径
output_file = os.path.join(output_folder, f"算法课个人档案-{sheet_name}-第三季度更新.xlsx")
# 复制原始文件
shutil.copy2(input_file, output_file)
# 加载新复制的文件
new_wb = load_workbook(output_file)
# 获取要保留的工作表
target_sheet = new_wb[sheet_name]
# 删除其他所有工作表
for s in new_wb.sheetnames:
if s != sheet_name:
new_wb.remove(new_wb[s])
# 保存文件
new_wb.save(output_file)
print(f"已保存工作表 '{sheet_name}' 到文件: {output_file}")
# 使用示例
if __name__ == "__main__":
# 输入文件路径
input_excel = "a/算法课个人档案-AI算法组汇总表-2024第三季度.xlsx" # 替换为你的Excel文件路径
# 输出文件夹路径
output_dir = "b" # 输出文件夹名称
# 执行拆分
split_excel_sheets(input_excel, output_dir)
技术实现要点
使用shutil.copy2复制原始文件
使用openpyxl加载和操作Excel文件
通过删除其他工作表的方式保留目标工作表
保持原始文件的所有格式和功能