Python openpyxl 打开excel,修改某个参数值,读取到随着这个参数值改变后的单元格的数值

记录一下这个历史性的时刻!纠结了好久的问题终于解决了。

首先要感谢一下这个帖子:https://bbs.csdn.net/topics/392568534

这个博主针对问题:openpyxl用data_only=True后,读取公式的值后save后,发现文件中公式都没了,请问有解决办法吗?提出,用win32打开再保存:

def just_open(filename):
    xlApp = Dispatch("Excel.Application")
    xlApp.Visible = False
    xlBook = xlApp.Workbooks.Open(filename)
    xlBook.Save()
    xlBook.Close()

好了,说下我纠结的问题:

我想调用一个充满N多个公式的excel,实现:打开这个excel,修改某个参数值,希望读取到随着这个参数值改变后的单元格的数值。

实现方法:

import openpyxl 
from win32com.client import Dispatch

def just_open(filename):
    xlApp = Dispatch("Excel.Application")
    xlApp.Visible = False
    xlBook = xlApp.Workbooks.Open(filename)
    xlBook.Save()
    xlBook.Close()

wbDataOnly2 = openpyxl.load_workbook('C3.xlsx', data_only=False)#打开excel,为False表示不显示公式
#sheet2 = wbDataOnly2.active
sheet2 = wbDataOnly2.get_sheet_by_name(u'参数表')
sheet2['D5'].value = 2000

wbDataOnly2.save('C3_1.xlsx')
just_open('C3_1.xlsx')
wbDataOnly3 = openpyxl.load_workbook('C3_1.xlsx', data_only=True)#再次打开新保存的excel,为True表示显示公式计算结果
sheet3 = wbDataOnly3.get_sheet_by_name(u'参数表')
print sheet3['D65'].value

 

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值