You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python重排Excel文件中的工作表?(含test.xlsx实例)

用Python重排Excel工作表的实现方法

下面提供两种常用的实现方案,针对.xlsx格式的test.xlsx文件,将工作表顺序从['Sheet1', 'Sheet2', 'Sheet3']调整为['Sheet3', 'Sheet1', 'Sheet2']:

方法一:使用openpyxl(直接操作工作表顺序,高效)

openpyxl是专门处理Excel xlsx格式的库,无需读取工作表数据即可调整顺序,适合仅调整表结构的场景。

  1. 先安装依赖库:
pip install openpyxl
  1. 实现代码:
from openpyxl import load_workbook

# 加载目标Excel文件
wb = load_workbook('test.xlsx')

# 定义期望的工作表顺序
target_order = ['Sheet3', 'Sheet1', 'Sheet2']

# 遍历目标顺序,设置每个工作表的位置索引(索引从0开始)
for idx, sheet_name in enumerate(target_order):
    wb[sheet_name].index = idx

# 保存修改后的文件(可选择覆盖原文件或另存为新文件)
wb.save('test_reordered.xlsx')

说明:

  • 工作表的index属性决定了它在Excel中的位置,0对应第一个标签页,1对应第二个,以此类推
  • 若需直接覆盖原文件,将save的文件名改为test.xlsx即可,建议操作前备份原文件

方法二:使用pandas(适合需同时处理数据的场景)

如果需要在调整顺序的同时处理工作表数据,pandas是更便捷的选择。

  1. 安装依赖库(若未安装):
pip install pandas openpyxl
  1. 实现代码:
import pandas as pd

# 读取所有工作表到字典(键为工作表名,值为DataFrame)
all_sheets = pd.read_excel('test.xlsx', sheet_name=None)

# 按目标顺序筛选工作表
ordered_sheets = {name: all_sheets[name] for name in ['Sheet3', 'Sheet1', 'Sheet2']}

# 将整理后的工作表写入新文件
with pd.ExcelWriter('test_reordered.xlsx') as writer:
    for sheet_name, df in ordered_sheets.items():
        df.to_excel(writer, sheet_name=sheet_name, index=False)

说明:

  • read_excel的sheet_name=None参数会读取文件中所有工作表
  • index=False用于避免将DataFrame的索引列写入Excel,若需保留索引可移除该参数

注意事项

  • 上述方法仅支持.xlsx格式,若处理.xls文件,需改用xlrd和xlwt库(注意xlrd 2.0+不再支持xls格式,需安装xlrd<2.0版本)
  • 确保目标顺序中的工作表名称与原文件完全一致,否则会抛出KeyError异常

内容的提问来源于stack exchange,提问作者Min Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:18:19