2012-12-17 48 views
-1

您好。我在Python中使用xlwt包來創建寫入excel文件的應用程序。Excel列寬度隨xlwt大小寫文本

我有一個返回小區的所需的寬度,所以我可以使細胞足夠大以適應文本的功能。然而,當我寫大寫的文本時,我的函數崩潰了,因爲它返回的寬度遠小於實際文本的寬度。

我不知道有什麼問題。任何意見將不勝感激。

def getWidth(self, num_characters): 
    """ Returns the approximate width of a cell. """ 
    return int((1+num_characters) * 256) 

回答

0

所有你與getWidth功能做的是猜測你會多少空間需要。您猜測的原因是因爲每個字母採用不同的空間量(「IIIII」佔用更小的空間比「MMMMM」)。顯然,大寫字母將佔用更多空間。

有兩個簡單的(但並不完美)修復了這個問題:

  1. 增加每個字符寬度爲所有細胞。這將意味着修改函數中的值256。我會說增加50%可能會解決你的問題。
  2. 做,你插入插入前小寫細胞的一切。

的選項1中的代碼將是非常相似的,你有什麼已經:

def getWidth(self, num_characters): 
    """ Returns the approximate width of a cell. """ 
    return int((1+num_characters) * 384) 

代碼選項2將涉及調用你的字符串lower方法插入之前。這將是這個樣子:

my_cell_value = "THIS IS ALL CAPS!" 
my_worksheet.write(1,1,my_cell_value.lower()) 
+0

謝謝。這解決了我的問題。我使用了第一種方法,因爲我需要輸出大寫字符串。 – geekkid

相關問題