2010-06-06 472 views
1

只是一個簡單的問題,如何在不修改數字的情況下爲數字添加百分號。我已經嘗試格式百分比與myStyleFont.num_format_str ='0.00%',但它乘以100,但我只需要追加百分比。在Python中添加百分比 - xlwt/pyexcelerator

Ty提前。

問候。

回答

4

請注意:「修改」和「與100相乘」影響顯示的結果,它們既不影響存儲在文件中的值,也不影響公式計算中使用的值。

將操作符視爲文字的技術被稱爲「轉義」。

Excel數字格式字符串中的轉義字符是反斜槓。

做你想做的,你的格式應該是r"0.00\%""0.00\\%"

上面有什麼不侷限於Python或xlwt等,您可以測試此使用的用戶界面(Excel中,OpenOffice的一個的Excel,屬性Calc,Gnumeric)。

請注意,除非您有一定數量的用戶會閱讀並理解您將寫入的文檔[不太可能* 3],否則您不應該那樣做;它會相當混亂 - 看到5.00%的普通Excel用戶假設底層編號是0.05。爲了看到這一點,在Excel中等輸入這些A1,A2,A3:5%然後.05然後=A1=A2 ...你會在A3中看到TRUE

pyExcelerator是遺棄的;你爲什麼提到它?

關於myStyleFont.num_format_str = '0.00%'(1)「font」和「num_format_str」是風格又稱爲XF的完全獨立的組件;你的變量名稱「myStyleFont」令人困惑/困惑。 (2)通過將屬性戳入對象來設置XF是xlwt中的舊帽子;改爲使用easyxf

0

00.0%數字格式需要百分比,因此乘以100以顯示它是正確的行爲。爲了得到你想要的結果,你可以將數據作爲一個字符串以你選擇的任何格式存儲在單元格中,或者在將值存儲在單元格中之前,除以100.0。

6

只是爲了澄清任何人,這裏是格式化數爲xlwt百分比的例子:

from xlwt import easyxf, Workbook 
wb = Workbook() 
ws = wb.add_sheet('Formatting Sheet') 
style_percent = easyxf(num_format_str='0.00%') 
ws.write(0, 5, 0.12, style_percent) 

這說明在Excel單元格作爲'12 .00%」。