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

Pandas读取启用R1C1引用样式的Excel文件时报错的解决咨询

Pandas读取启用R1C1引用样式的Excel文件时报错的解决咨询

嗨,这个问题我之前碰到过好几个朋友问,正好可以给你几个实用的解决思路,完美适配你每天自动读取的需求:

先唠唠报错的根源

你遇到的invalid literal for int() with base 10: 'E'错误,本质是Pandas默认的读取引擎(比如xlrd、openpyxl)在处理R1C1格式文件时,把列标识的逻辑搞混了——它会误以为单元格里的内容(比如'E')是R1C1的列数字标识,强行要把它转成整数,自然就触发报错了。

三个解决方法任你挑

  • 方法一:用openpyxl引擎+data_only=True(最轻便)
    如果你只需要读取数据,不需要修改原文件,直接用openpyxl作为引擎,加上data_only=True参数就行。这个参数会让引擎跳过R1C1的格式解析,直接读取单元格的实际内容:

    import pandas as pd
    df = pd.read_excel("你的每日文件.xlsx", engine="openpyxl", data_only=True)
    

    不需要额外装太多库,只要确保你已经装了openpyxl(pip install openpyxl)就OK。

  • 方法二:用pywin32自动修改Excel设置(Windows专属)
    这个方法完全模拟你手动打开文件关闭R1C1的操作,适合需要保留原文件格式的场景。用pywin32后台操作Excel,修改后再保存,之后Pandas就能正常读取了:

    import win32com.client as win32
    import pandas as pd
    
    # 后台启动Excel,不显示窗口
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    excel.Visible = False
    wb = excel.Workbooks.Open(r"你文件的绝对路径.xlsx")
    
    # 关闭R1C1引用样式
    wb.UseR1C1 = False
    wb.Save()
    wb.Close()
    excel.Quit()
    
    # 现在读取就没问题了
    df = pd.read_excel("你的每日文件.xlsx")
    

    记得先装pywin32:pip install pywin32。

  • 方法三:用xlwings跨平台处理(Mac/Windows都能用)
    如果你需要在Mac上也运行脚本,xlwings是个很好的选择,它的逻辑和pywin32类似,但兼容性更强:

    import xlwings as xw
    import pandas as pd
    
    with xw.App(visible=False) as app:
        wb = xw.Book("你的每日文件.xlsx")
        wb.api.UseR1C1 = False
        wb.save()
        wb.close()
    
    df = pd.read_excel("你的每日文件.xlsx")
    

    安装xlwings:pip install xlwings,Mac上要确保你有正版Excel能正常运行哦。

小提醒

如果只是读取数据,优先选方法一,简单高效;如果有修改原文件格式的需求,再考虑方法二或三。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 07:18:05