前提・実現したいこと
openpyxlで書き込み処理の後、別のタイミングでデータの読み込みした際に数式結果を取得する
Excelファイル点数100以上のデータに書き込みと数式の結果の読み込み。
当データは条件を似せて、同事象が発生しているダミーデータ
Excelファイルには
セルA1:2
セルB2:2
セルA2:=sum(A1,B1)
があらかじめ入力済み。
下記ソースコードにてB2セルに数式を追加
環境
MacOS Mojave 10.14.6
Python 3.5.0
openpyxl:2.6.2
Excel:2016
発生している問題・エラーメッセージ
ファイルを開く前に読み込み処理を開始すると、セルの取得結果がNoneになってしまう。
該当のソースコード
python
1import openpyxl as ex 2 3path = "/Users/******/Desktop/ブック1.xlsx" 4 5 6""" 7書き込み処理 8""" 9write_book = ex.load_workbook(path) 10write_sheet = write_book.get_sheet_by_name("Sheet1") 11write_sheet["B2"].value = "=SUM(A1,B1)" 12write_book.save(path) 13 14 15""" 16読み込み処理 17""" 18read_book = ex.load_workbook(path,data_only=True) 19read_sheet = read_book.get_sheet_by_name("Sheet1") 20print(read_sheet["A2"].value,read_sheet["B2"].value)
試したこと
ファイルを手動で開いて保存することでデータが正しく取れたのですが、
データ点数が100以上あるため、手動は容易ではありません。
書き込み時にdata_only=Trueで回避できましたが、
他の数式が全て消えてしまいます。
数式も膨大に埋め込まれているため、
極力データ書き込み処理後、数式結果を読み取れるようにできればと考えております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/07 10:54