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

使用openpyxl读取Excel单元格时获取计算结果而非公式的方法

解决openpyxl读取公式而非计算结果的问题

在使用openpyxl加载工作簿时,默认会读取单元格的公式内容,要获取计算后的实际数值,只需在load_workbook中添加data_only=True参数即可。修改后的代码如下:

from openpyxl import load_workbook

# 打开Excel工作表,添加data_only=True参数读取计算结果
workbook = load_workbook(filename="filename.xlsx", data_only=True)
sheet = workbook.active

# 打印第5行第3列(即C5单元格)的计算结果
print(sheet.cell(row=5, column=3).value)

注意:data_only=True读取的是Excel文件最后一次保存时已计算好的结果,如果文件中的公式从未在Excel中计算保存过,可能返回None,此时需要先手动打开Excel保存一次,或者使用支持实时计算公式的库。

适合操作Excel的Python库推荐
  • pandas:如果你的核心需求是表格数据的分析、清洗或转换,pandas是首选。它底层依赖openpyxl或xlrd读取文件,会自动读取计算后的数值,代码更简洁:
import pandas as pd

df = pd.read_excel("filename.xlsx")
# 获取C5单元格对应的值(pandas行索引从0开始,C列对应第2列,第5行对应索引4)
print(df.iloc[4, 2])
  • xlwings:适合需要与Excel程序直接交互的场景,支持实时计算公式、操作宏、修改样式等,功能更贴近手动操作Excel的体验:
import xlwings as xw

# 启动Excel程序并打开文件
wb = xw.Book("filename.xlsx")
sheet = wb.sheets.active
# 直接获取C5单元格的计算结果
print(sheet.range("C5").value)
wb.close()
  • xlrd/xlwt:xlrd主要用于读取旧版.xls格式文件(新版已不再支持.xlsx),xlwt用于写入.xls文件,适合处理老旧格式的Excel文件场景。

内容的提问来源于stack exchange,提问作者Alooy DaBoss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:55:31