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'),
...

誰かが間接式の使い方を提案できますか?

4

1 に答える 1

0

xlwt参照を返す関数を含む数式のコンパイルに問題があります。これは、OpenOffice Calc と Gnumeric では問題ではありません。これらは、"do what I mean" という哲学に基づいて動作しているように見えます。Excel 2003 では、セルを選択してから F2 を押す必要があります (数式を xlwt で生成されたバイトコードからテキストに逆コンパイルします)、続いてEnter(テキストを適切なバイトコードにコンパイルします)。これに取り組むことは、私の優先順位のリストでは非常に低いです。

于 2011-09-12T01:32:49.050 に答える