Openpyxl 1.8.5: Reading the result of a formula typed in a cell using openpyxl

匿名 (未验证) 提交于 2019-12-03 01:57:01

问题:

I am printing some formula in one of the Excel sheets:

wsOld.cell(row = 1, column = 1).value = "=B3=B4"

But I cannot use its result in implementing some other logic, as:

if((wsOld.cell(row=1, column=1).value)='true'):     # copy the 1st row to another sheet

Even when I am trying to print the result in the command line, I end up printing the formula:

>>> print(wsOld.cell(row=1, column=1)) >>> =B3=B4

How can I get the result of the formula in a cell and not the formula itself?

回答1:

openpyxl support either the formula or the value of the formula. You can select which using the data_only flag when opening a workbook. However, openpyxl does not and will not calculate the result of a formula. There are libraries out there like pycel which purport to do this.



回答2:

Openpyxl doesn't support excel 100% for calculating the formula. It supports only very basic formulas. If you want to calculate all formula in workbook you should use xlwings library.



回答3:

I have solved the matter using a combination of openpyxl and pandas:

import pandas as pd import openpyxl from openpyxl import Workbook , load_workbook   source_file = "Test.xlsx" # write to file wb = load_workbook (source_file) ws = wb.active ws.title = "hello world" ws.append ([10,10]) wb.save(source_file)  # read from file df = pd.read_excel(source_file) sum_jan = df ["Jan"].sum()  print (sum_jan)


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!