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

Python使用load_workbook()读取Excel仅获值失败的问题求助

解决Excel公式计算值读取问题

原因说明

data_only=True 本身不具备公式计算能力,它只能读取Excel软件已经计算完成并保存到文件中的结果。如果你的目标Excel文件从未被Excel或WPS这类兼容软件打开并保存过,文件里根本没有存储公式的计算结果,openpyxl自然读不到你想要的数值。

可行解决方案

方案1:手动预处理Excel文件

  • 打开目标Excel文件,等待所有公式计算完成
  • 直接保存文件(无需修改内容),再运行你的Python脚本
  • 此时load_workbook(filein, data_only=True)就能正常读取计算后的值

方案2:换用支持公式计算的库

如果没法手动处理文件,可以用以下两种库替代:

  • pandas批量读取示例:
    import pandas as pd
    df = pd.read_excel(filein, engine='openpyxl')
    # df中存储的就是所有单元格的计算后值
    
    适合需要批量读取整表数据的场景。
  • xlwings调用原生Excel计算示例:
    import xlwings as xw
    app = xw.App(visible=False)  # 后台运行Excel,不显示界面
    wb = app.books.open(filein)
    sheet = wb.sheets[0]
    target_value = sheet.range('BN121').value  # 获取指定单元格的计算结果
    wb.close()
    app.quit()
    
    依赖本地安装的Excel软件,计算结果和Excel原生表现完全一致。

方案3:用openpyxl配合第三方计算库

可以用openpyxl读取公式,再通过pycel库计算结果:

from openpyxl import load_workbook
from pycel import ExcelCompiler

wb = load_workbook(filein)
compiler = ExcelCompiler(wb)
# 计算指定单元格的结果,替换成你的工作表名和单元格位置
target_value = compiler.evaluate('Sheet1!BN121')

无需安装Excel,但对复杂函数的支持可能不如原生Excel。

内容的提问来源于stack exchange,提问作者Roberta Cattaneo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 16:13:11