2012-04-15 2 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)), ("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과 기능의 유형을 사용할 수이 오류가 얻을?

+0

닫는 괄호가 누락 된 것으로 보입니다 ... – EML

+0

얼굴/손바닥 - 잘 잡습니다. 그 수정, 내 수식이 너무 깨달았다 - 나는 IF의 진술에 필요한 거짓 값을 필요로했다. – Brobot

답변

0

당신이 입력 한 불가능을 무시 monkey 및 오류 메시지가 bitmapG2을 언급하는 반면 G1 ...

난 당신이 Excel을 불 제안은, 셀, 유형 =을 선택하고 수식을 붙여 ... 무슨 일이? 이 체크는 공개되기 전에 항상 권장되며 인터넷 연결이 끊어진 경우에도 사용할 수 있습니다.

주 :

(1) "true" 주위의 괄호는 중복

(2) 단순 : ISNUMBER(SEARCH("bitmap",G2))

(3) 당신은 정말 사용자가 결과 XLS 파일을 열 것으로 기대하고 텍스트를 G 열에 입력 하시겠습니까?

+0

1) 나는 2) 알다. 간단하다. 이 수식을 일련의 행에 붙여 넣기 때문에 + thisRow + 3) 아니요, 전체 프로젝트를 설명하기보다는 직접적인 문제를 단순화하려고했습니다. 이 경우, 진술에 셀이 참이면 문자열을, 거짓이면 다른 문자열을 셀에 자동으로 채우고 싶습니다. 보다 구체적으로이 함수는 여러 시나리오를 검사하는 일련의 중첩 된 IF 문입니다. 사소한 비 관련 쟁점을 지적하고 해결책을 찾은 2 시간 후에 저를 놀라게하는 방법에 감사드립니다. 도움이됩니다. – Brobot

관련 문제