openpyxl 、xlrd等模块 读取带公式的excel遇到怪事,至今仍未找到答案

在使用openpyxl读取含有公式的Excel文件时,遇到读取结果为None或公式本身的问题。通过设置data_only参数无法正常获取计算后的值。解决方法是利用win32com组件打开并保存文件,使公式变为计算后的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件起因:通过程序生成的Excel文件(部分单元格带有公式)
在这里插入图片描述
奇葩问题:openpyxl 读取带公式的excel时,要么 读出来是“None”,要么是“公式本身”
wb = openpyxl.load_workbook(‘daikuan.xlsx’,data_only = True)-------读出来的是 none
#wb = openpyxl.load_workbook(‘daikuan.xlsx’,data_only = False)------------读出来的是 公式本身
xlrd读取也一样
网上搜索都没有针对带公式的Excel文件读取的说法,今早偶然看到一则网页暂时解决了,但原因不明。
最笨的方法:

  1. 打开excel文件,点击save,别的什么都不做
  2. 关闭excel
  3. 再运行.py程序。
    完全没有问题,但是问题出在哪里呢?是否可以用程序打开文件再保存再打开再读取?

继续……
https://www.cnblogs.com/vhills/p/8327918.html
有具体说明为什么

用openpyxl读取excel的load_workbook有个data_only参数。

1

yb_wb = load_workbook(u"D:\Desktop\xxx.xlsx", data_only=True)

顾名思义,True时,只读data,忽略公式。

但是有个情景是——得先保留公式,根据旧公式写入新公式。然后再读取值进行操作。也就是说先data_only = False,然后再data_only = True。

这样会导致读取值操作的时

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值