首页 > 解决方案 > Python xlcalculator 定义名称功能似乎不起作用

问题描述

我正在设置一个“定义的名称”“foo”并将其与单元格“B24”相关联。我在单元格 B25 中设置了一个公式,如下所示:'=B2*foo'。单元格 B2 的值为 1000,B24 的值为 3。评估值需要为 3000。报告的输出值为 0。

起作用的python代码是:

input_dict2 = {
    "B4": 0.95,
    "B2": 1000,
    "B19": 0.001,
    "B20": 4,
    # B21
    "B22": 1,
    "B23": 2,
    "B24": 3,
    "B25": "=B2*foo",
    "B26": 5,
    "B27": 6,
    "B28": "=B19*B20*B22",
    "C22": "=SUM(B22:B28)",
  }
compiler = ModelCompiler()
compiler.defined_names={"foo":"Sheet1!B24"}
compiler.read_and_parse_dict(input_dict2)
compiler.build_defined_names()
compiler.link_cells_to_defined_names()

my_model2 = compiler.model;
evaluator2 = Evaluator(my_model2)

for formula in my_model2.formulae:
   print("Formula", formula, "evaluates to", evaluator2.evaluate(formula))

执行输出为:

Formula Sheet1!B25 evaluates to 0.0
Formula Sheet1!B28 evaluates to 0.004
Formula Sheet1!C22 evaluates to 17.004

问题仅在于包含定义名称的公式。其他公式工作正常。想知道这里是否存在错误,或者我是否没有正确设置定义的名称操作。

标签: pythonexcel-formula

解决方案


推荐阅读