0

我使用了以下代码,但它不起作用。我检查了xls。公式已正确填写,但仍保留为文本条目。如果按 ENTER 键激活此单元格,它可以工作。

sheet1.write(1, 1, xlwt.Formula('INDIRECT(\"\'sheet1\'!B1\")'))

我发现 INDIRECT 在 xlwt\ExcelMagic.py 中声明:

all_funcs_by_name = {
    # Includes Analysis ToolPak aka ATP aka add-in aka xcall functions,
    # distinguished by -ve opcode.
    # name: (opcode, min # args, max # args, func return type, func arg types)
    # + in func arg types means more of the same.
...
'INDIRECT'    : (148, 1,  2, 'R', 'VV'),
...

谁能建议如何使用 INDIRECT 公式?

4

1 回答 1

0

xlwt编译包含一些应返回引用的函数的公式时存在问题。这在 OpenOffice Calc 和 Gnumeric 中无关紧要,它们似乎遵循“按我的意思行事”的理念。在 Excel 2003 中,您需要选择单元格,然后按 F2(强制它将公式从 xlwt 生成的字节码反编译为文本),然后按Enter(使其将文本编译成它满意的字节码)。在我的优先事项列表中,这方面的工作非常低。

于 2011-09-12T01:32:49.050 回答