python表格处理模块openpyxl访问公式计算结果技巧

  如果要对一个cell对象使用公式进行操作则直接对该cell对象赋值方式文本,例如:sheet['A3']='=SUM(A1:A2)'
  在赋值公式后,对该cell进行值访问在默认模式下得到的为文本公式;若要访问公式的计算结果,则需要在载入工作簿时使用data_only关键字,例如使用wb=openpyxl.load_workbook(r'example.xlsx',data_only=True)语句打开表格时则在访问公式cell时返回的结果为公式计算结果(赋值公式后得先用Excel软件打开表格再保存得到公式的计算结果值才能访问得到公式计算结果否则访问得到None值)。
  这是因为使用wb = openpyxl.load_workbook(‘abc.xlsx’, data_only=True)语句打开’abc.xlsx’文件,且abc.xlsx’被生成并在Excel程序中打开并保存之后(这个过程Excel会把公式结果计算出来),该文件附带有两套值,一套是公式全都没有计算的(data_only=False(默认)),一套是公式计算了结果的(data_only=True)。(如果没有被Excel打开并保存,则只有一套值(data_only=False的那套,公式没有计算结果的)。
  此时,以data_only=True或默认data_only=False打开会得到两种不同的结果,各自独立,即data_only=True状态下打开的,会发现公式结果为None(空值)或者一个计算好的常数,而不会看到它原本的公式是如何。而data_only=False则只会显示公式而已。因此,data_only=True状态下打开,如果最后用save()函数保存了,则原xlsx文件中,公式会被替换为常数结果或空值。而data_only=False状态下打开,最后用save()函数保存了的话,原xlsx文件也会只剩下data_only=False的那套值(即公式),另一套(data_only=True)的值会丢失,如想重新获得两套值,则仍旧需要用Excel程序打开该文件并保存。
 PS:参考自https://blog.51cto.com/antidarkness/1974684
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值