2012-05-03 4 views
1

Excelセルの値を設定する際に問題が発生しています。 MS-Word文書(dcx)の表のセルからデータを取得し、出力コンソールに出力します。Excelのセルで不要な文字

セルのデータは単なる単語であり、空白のような印字可能な他の先頭または末尾の文字はありません。しかし、私はそれをpythonのprint()関数を使って印刷すると、予期せぬ文字が表示されます。矩形で

どこから来たのかわかりません。

「Hour」という単語を保持する同じ変数をExcelセルに書き込むと、セルに太字のドット()が表示されます。

何が問題なのですか?

ご迷惑をおかけして申し訳ありません。

私はPython 3.2とPyWin32を使用しています。3.2 Win7で。おかげさまで

+1

あなたは、文字列内のすべての文字を反復処理し、 'ORDを実行した場合(char) 'を返すと、どのような値が返されますか? – sarnold

+1

'print value'の代わりに' print repr(value) 'を試してください。 – bossylobster

+0

@sarnold、それは返す72 111 117 114 13. –

答えて

2

あなたの文字列valueの末尾にキャリッジリターン(\r)または改行(\n)を除去するvalue.rstrip('\r\n')を使用してみてください。

+0

返信: 'Hour \ r \ x07' –

+0

'\ x07'はシステムビープ音である' \ a'と同等です。どのようにあなたの文字列にそれを作ったか分かりません。 – bossylobster

+0

\ t、\ a、\ nなどの特殊文字をすべて削除する方法はありますか?私はストリップ機能でそれらのすべてを使用することなく意味ですか? –

5

単語文書の表からデータを取得するときに同じ問題が発生します。私は、この問題を解決するためにやったことは、これらすべての不要な文字を削除する小さな関数を記述することです:

import re 

def removechars(cellvalue): 
    text = re.sub(r"[\r\n\t\x07\x0b]", "", cellvalue) 
    return text 

その後、私が使用します。

value = table.Cell(Row = 1, Column = 1).Range.Text 
value = removechars(value) 
+0

これは正解です。 – camdenl

関連する問題