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

Python中使用UTF-8编码通过pd.read_excel读取Excel文件是否可行?

pd.read_excel读取UTF-8编码Excel文件的实现方案

首先明确:pd.read_excel() 没有和pd.read_csv()一致的公开encoding参数,是因为标准 .xlsx 格式本质为ZIP压缩包,内部存储的XML内容默认采用UTF-8编码,常规场景下无需额外配置即可正常识别多语言内容。如果遇到乱码,大多为旧版.xls格式、非标准导出Excel、文件存储编码异常的情况,可通过以下方案解决:

  • 方案1:针对旧版.xls格式指定引擎编码
    读取.xls格式文件时可使用xlrd引擎,直接传入encoding参数指定编码:

    # 需先安装支持xls格式的xlrd版本:pip install xlrd==1.2.0
    df = pd.read_excel("你的文件.xls", engine="xlrd", encoding="utf-8")
    
  • 方案2:通过字节流读取适配非标准编码文件
    如果是xlsx格式出现乱码,可先以二进制模式读取文件,再通过IO流传入pd.read_excel()解析:

    import pandas as pd
    from io import BytesIO
    
    with open("你的文件.xlsx", "rb") as f:
        df = pd.read_excel(BytesIO(f.read()), engine="openpyxl")
    
  • 方案3:通过openpyxl手动指定编码加载
    部分自定义导出的非标准xlsx文件,可以先通过openpyxl指定编码加载工作簿,再转换为DataFrame:

    from openpyxl import load_workbook
    import pandas as pd
    
    wb = load_workbook("你的文件.xlsx", encoding="utf-8")
    # 读取指定工作表可替换为 wb['工作表名']
    ws = wb.active
    df = pd.DataFrame(ws.values)
    

备注:如果以上方案仍存在乱码,可先确认源文件的实际编码,少数场景下文件实际编码为GBK、UTF-8 BOM等,将上述参数中的utf-8替换为对应编码即可。

内容的提问来源于stack exchange,提问作者Bar Kadosh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:18:02