0

文字列を作成して一連のセルに数式を書き込もうとしています。たとえば、列Gの対応するセルに「サル」という単語が含まれている場合、セルに「true」という単語を表示したいとします。

for rowi in range(totalRows):
    thisRow = str(rowi)
    functionString = r'IF(ISNUMBER(SEARCH("monkey",G'+thisRow+')),("true")

これにより、文字列 "IF(ISNUMBER(SEARCH("monkey",G1)),("true")" が生成されます。これを xlwt.Formula に渡すと...

    ws.write(rowi+1, 0, xlwt.Formula(functionString))

このエラーが発生します...

File "C:\Python27\Lib\site-packages\xlwt\ExcelFormula.py", line 22, in __init__
    raise ExcelFormulaParser.FormulaParseException, "can't parse formula " + s
xlwt.ExcelFormulaParser.FormulaParseException: can't parse formula IF(ISNUMBER(SEARCH("bitmap",G2)),("true")

このタイプの関数を xlwt で使用することは可能ですか?

4

1 に答える 1

0

入力した不可能性を無視し、エラーメッセージに言及しているmonkeyのに対し...G1bitmapG2

Excel を起動し、セルを選択し、=数式を入力して貼り付けることをお勧めします。どうなりますか? このチェックは、公開する前に常に行うことをお勧めします。また、インターネット接続が切断されている場合でも利用できます。

ノート:

(1) 周りの括弧"true"は冗長です

(2)より簡単:ISNUMBER(SEARCH("bitmap",G2))

(3) ユーザーが結果の XLS ファイルを開き、列 G にテキストを入力することを本当に期待していますか?

于 2012-04-15T21:10:36.463 に答える