我想使用openpyxl從公式中讀取引用內部單元格的數據(引用是同一工作表上的單元格以及其他工作表上的單元格),但是當我嘗試從等式中讀取值時, 'None'的值。如果我先打開工作簿,則會收到有關更新鏈接的消息框。如果我點擊取消然後保存工作簿,我可以用方程式讀取值。我不想手動打開每個工作簿並保存它。有沒有辦法讓openpyxl在加載工作簿時正確評估內部引用的公式?如何使用openpyxl更新等式鏈接?
這是我如何加載工作簿:
import openpyxl
wbPath = [workbookpath]
workbook = openpyxl.load_workbook(wbPath, data_only=True)
*編輯:只是想補充的代碼,我用得到的方程式與openpyxl和xlwings包更新:
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進行其餘的工作簿操作。
該文檔非常清晰:openpyxl不評估公式。 http://openpyxl.readthedocs.io/en/latest/usage.html#using-formulae如果你需要這個,那麼你可以通過Excel或無頭LibreOffice泵文件。 –
我實際上剛剛結束了使用xlwings添加一個步驟到打開和關閉過程。我現在使用openpyxl保存我的工作簿,然後用xlwings重新打開工作簿,保存它,然後關閉工作簿。 – EliSquared