python openpyxl 在一个单元格中导入数据的函数

python openpyxl import a data in a cell with a function

from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.cell import get_column_letter
from openpyxl import load_workbook

wb1 = load_workbook(filename = 'B.xlsx')
sheet_ranges1 = wb1["Sheet1"]
wb1.save('B.xlsx')

print (sheet_ranges1.cell(row=10,column=8).internal_value)

我想从 .xlsx 文件加载数据。 sheet_ranges1.cell(ro=10,column=8)sheet_ranges1.cell('H10') 相同.在 EXCEL 文件中,H10 是一个 SUM 函数。当我在 python:

中打印它时
print (sheet_ranges1.cell(row=10,column=8).internal_value)

显示:

=SUM(N23:N128)

我想知道如何在H10中显示数字。 .internal_value.value 似乎都行不通。我也试过data_only=True,但是好像不行。

例如:

     A     B     C
1    4     5     9

C1=A1+B1

wb1 = load_workbook(filename = 'B.xlsx')
sheet_ranges1 = wb1["Sheet1"]
wb1.save('B.xlsx')

print (sheet_ranges1.cell(row=2,column=3).value)

结果:'A1+B1'

wb1 = load_workbook(filename = 'B.xlsx',data_only=True)
sheet_ranges1 = wb1["Sheet1"]
wb1.save('B.xlsx')

print (sheet_ranges1.cell(row=2,column=3).value)

结果:9

我想用openpyxl改变A1B1的值,并将C1导入另一个excel 文件。但是,如果我不使用 data_only=True,结果将是“=A1+B1”。如果我用data_only=True,把A1,B1的值改成5,6后,C1=9,即函数没有C1 单元格中不存在。

Blockquote

Openpyxl 的设计是这样的,您可以检索一个公式或公式的值,但不能同时检索两者。这样做的原因是 openpyxl 从不计算公式,因此永远不能保证结果的有效性。 Excel 存储公式的最后一个计算值,我们可以读取它。但是,我们假设您可能会更改公式中使用的值,这会使它无效并需要重新计算公式。如果要执行此操作,则必须将文件传递给可以执行此操作的应用程序。