openpyxlを使って内部セルを参照する方程式(参照は同じワークシート上のセルと他のワークシート上のセルの両方にある)からデータを読み取ろうとしていますが、方程式から値を読み取ろうとすると、値は 'None'です。最初にワークブックを開くと、リンクの更新に関するメッセージボックスが表示されます。キャンセルしてワークブックを保存すると、式で値を読み取ることができます。私は手動ですべてのワークブックを開き、それを保存したくありません。 openpyxlがワークブックを読み込むときに、内部参照の式が正しく評価されるようにする方法はありますか?ここでopenpyxlを使って方程式リンクを更新するには?
は、私はワークブックをロードする方法である:
import openpyxl
wbPath = [workbookpath]
workbook = openpyxl.load_workbook(wbPath, data_only=True)
*編集:
import xlwings as xw
import openpyxl
#Open and save workbook with openpyxl
wbPath = [WorkbookPath]
wb = openpyxl.load_workbook(wbPath)
wb.save(wbPath)
#Use xlwings to open and compute equations
wb = xw.Book(wbPath)
app = xw.apps.active
wb.save(wbPath)
app.quit()
これを:ちょうど私がopenpyxlとxlwingsパッケージを更新するために、方程式を取得するために使用するコードを追加したいですすべての方程式が再生成され、残りのブックの操作にopenpyxlを使用することができます。
openpyxlは数式を評価しません。 http://openpyxl.readthedocs.io/en/latest/usage.html#using-formulaeこれが必要な場合は、ExcelまたはヘッドレスのLibreOfficeでファイルをポンピングできます。 –
私は実際には、xlwingsを使ってオープンプロセスとクローズプロセスにもう一つステップを追加しました。私は今openpyxlを使用してブックを保存してから、xlwingsでブックを再度開き、保存してブックを閉じます。 – EliSquared