2012-05-03 21 views
1

我面臨着設置Excel單元格值的問題。 我從MS-Word文檔(dcx)中的表格單元格獲取數據並將其打印在輸出控制檯上。Excel中單元格中的不需要的字符在Python中

問題在於單元格的數據只是一個單詞「小時」,沒有明顯的其他前導或尾隨可打印字符(如空格)。但是當我使用python的print()函數打印它時,它顯示了一些意想不到的字符,更像是一個小「?」在一個矩形。

我不知道它從哪裏來。

而且,當我向Excel單元格寫入包含單詞「小時」的相同變量時,它會在單元格中顯示一個粗體點()。

可能是什麼問題?

任何幫助,非常感謝。

我使用Python 3.2和PyWin32 3.2在Win7上。 謝謝。

+1

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

然後我用(char)',返回什麼值? – sarnold

+1

嘗試'print repr(value)'而不是'print value'。 – bossylobster

+0

@sarnold,它返回72 111 117 114 13. –

回答

2

嘗試使用value.rstrip('\r\n')刪除字符串value末尾的任何回車(\r)或換行符(\n)。

+0

返回: '小時\ r \ x07' –

+0

'\ x07'相當於'\ a',它是一個系統嘟嘟聲。我不確定這是如何讓它進入你的字符串。 – bossylobster

+0

有什麼方法去除\ t,\ a,\ n等所有特殊字符。我的意思是沒有在剝離功能中使用它們全部? –

5

我從Word文檔中的表中獲取數據時遇到同樣的問題。我做了什麼來解決這個問題是寫一個小功能,消除所有這些不必要的字符:如果你的每一個字符遍歷字符串中運行`奧德

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

這是正確的答案。 – camdenl

相關問題