Python openpyxl excelを開き、あるパラメータ値を修正し、このパラメータ値が変化したセルの数値を読み取る

1276 ワード

この歴史的な瞬間を記録してください!長い間悩んでいた問題がやっと解決した.
まず、この投稿に感謝します.https://bbs.csdn.net/topics/392568534
このブロガーは質問に対してopenpyxl用data_only=True後、数式の値を読み取ってsaveすると、ファイルに数式がないことに気づきました.解決策はありますか?提案して、win 32で開けてから保存します:
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