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

Pandas读取含公式的Excel子工作表返回空DataFrame问题求助

根因说明
  • Pandas read_excel 方法默认读取Excel单元格已缓存的计算值,若带公式的工作表未将计算结果写入文件缓存,读取时就会返回空值或空DataFrame
  • 此前运行正常后续出现异常,通常是该Excel文件最近被编辑/生成时,未触发公式计算直接保存,或关闭了Excel的「保存公式计算结果」配置
解决方案

方案1:修复Excel文件(最快生效)

打开Reports Database.xlsx执行以下操作:

  1. 进入「文件」-「选项」-「公式」设置页
  2. 勾选「自动计算」选项
  3. 按F9手动触发全表公式计算
  4. 保存文件后重新运行原有代码即可恢复正常

方案2:代码端强制计算读取(无需修改Excel文件)

使用openpyxl加载工作簿时主动计算所有公式,再转成DataFrame:

import os
import pandas as pd
from openpyxl import load_workbook

db_location = os.path.join(os.getcwd(), "Reports Database.xlsx")
# 加载时自动计算所有公式,仅读取计算后的值
wb = load_workbook(db_location, data_only=True, calculate_load=True)
# 提取指定工作表数据生成DataFrame
ws = wb[company]
df = pd.DataFrame(ws.values)
# 可选:如果工作表第一行是表头,执行以下代码设置列名
df.columns = df.iloc[0]
df = df[1:].reset_index(drop=True)

方案3:调整read_excel引擎参数

若你使用的Pandas版本≥1.3,可优先尝试更换读取引擎,大部分场景下可直接兼容读取公式计算结果:

db_location = os.getcwd()+"\\Reports Database.xlsx"
df = pd.read_excel(db_location, sheet_name=company, engine="openpyxl")

注意:旧版xlrd引擎对xlsx格式的公式支持极差,必须指定openpyxl引擎读取带公式的xlsx文件


内容的提问来源于stack exchange,提问作者Rafek Gorgay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 20:54:04