2012-04-15 10 views
0

私は、文字列を構築して一連のセルに数式を書き込もうとしています。たとえば、列Gの対応するセルに "monkey"という単語が含まれている場合、セルに単語 "true"を表示したいとします。xlwtは式のIF文を解析できません

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

これは、文字列を生成します "IF(ISNUMBER(SEARCH(" 猿 "G1))、( "真")" - 私は、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と機能のこのタイプを使用することが可能です...このエラーが出る?

+0

閉じ括弧が欠けているようです... – EML

+0

顔/パーム - 良いキャッチ。私の公式がオフであったことを認識しました。私は、IFステートメントで必要とされるfalseの値を必要としました。 – Brobot

答えて

0

あなたが入力した不可能を無視私はExcelを立ち上げて、セルを選択し、タイプ=とあなたの数式を貼り付けることを示唆しているmonkeyG1エラーメッセージがbitmapG2に言及しているのに対し、...

...何が起こりますか?このチェックは、公開する前に常にお勧めです。インターネット接続が切断されている場合でも利用できます。

注:

(1)"true"周りの括弧は

(2)シンプルな冗長である:ISNUMBER(SEARCH("bitmap",G2))

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

+0

1)私は知っている2)うん、それは簡単です。この式を一連の行に貼り付けているので、+ thisRow + 3)いいえ、プロジェクト全体を説明するのではなく直接的な問題を単純化しようとしていました。この場合、真の場合は文字列、偽の場合は別の文字列でセルに自動的に記入します。より具体的には、この関数は、いくつかのシナリオをチェックする一連のネストされたIF文です。解決策が見つかってから2時間後に私に眉をひそめて、些細な非関連の問題を指摘する方法に感謝します。役に立った – Brobot

関連する問題