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

如何用Pandas替代openpyxl实现现有Python代码功能?

使用Pandas替代openpyxl修改Excel工作表名称

原代码的核心功能是遍历指定目录下的Excel文件,将名称为(不区分大小写的HI MAPPING)或包含HI Mapping1的工作表统一重命名为HI Mapping。以下是用Pandas实现的等效代码:

import pandas as pd
import os
import shutil

# 设置目标目录
path = "D:/Project/Backup/"
os.chdir(path)
files = os.listdir(path)

for f in files:
    # 仅处理Excel格式文件
    if f.endswith(('.xlsx', '.xls')):
        # 先备份原文件,避免数据丢失
        shutil.copy(f, f"{f}.bak")
        
        # 读取Excel文件的所有工作表信息
        xls = pd.ExcelFile(f)
        # 构建工作表名称映射关系
        sheet_mapping = {}
        for sheet_name in xls.sheet_names:
            # 判断是否需要重命名
            if sheet_name.upper().strip() == "HI MAPPING" or "HI Mapping1" in sheet_name:
                sheet_mapping[sheet_name] = "HI Mapping"
            else:
                sheet_mapping[sheet_name] = sheet_name
        
        # 将所有工作表按新名称写入原文件(覆盖)
        with pd.ExcelWriter(f, engine="openpyxl") as writer:
            for old_name, new_name in sheet_mapping.items():
                # 读取原工作表数据
                df = pd.read_excel(xls, sheet_name=old_name)
                # 写入新名称的工作表,不保留索引列
                df.to_excel(writer, sheet_name=new_name, index=False)

关键说明:

  • 依赖安装:需要确保已安装pandas和openpyxl,可通过命令安装:pip install pandas openpyxl
  • 文件备份:代码中加入了原文件备份逻辑,处理后会生成.bak后缀的备份文件,防止意外丢失数据
  • 格式兼容:使用openpyxl引擎支持.xlsx格式,若需处理.xls文件,需替换引擎为xlrd(注意:xlrd 2.0+版本不再支持.xls,需安装旧版本pip install xlrd==1.2.0)
  • 效率优化:相比原openpyxl多次保存文件的逻辑,Pandas通过一次性写入所有工作表,减少了IO操作次数

内容的提问来源于stack exchange,提问作者Chirantan Mandal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:50:18