2014-09-23 394 views
0

我有以下示例代碼;Openpyxl - 如何從excel文件中的單元格讀取int值

from openpyxl import load_workbook 

print "Going to execute the script" 

workbook = load_workbook("SampleExcel.xlsx", use_iterators = True) 

for worksheet in workbook: 
    for row in worksheet.iter_rows(): 
     for cell in row: 
      if(cell.internal_value != None): 
       print cell.internal_value   

print "End of script execution" 

在我的Excel文件中的一些細胞有一個像1,22,732等,但cell.internal_value非十進制值是給我的這些值1.0,22.0,732.0等等。我怎樣才能得到數值就像在excel文件中看到的一樣?

Ps:我使用的是openpyxl 1.8.5版本。但我已經嘗試了最新版本的openpyxl 2.1.0,將cell.internal_value更改爲cell.value,並且存在相同的問題。

回答

0

問題出在openpyxl包已解決。現在cell.value可按預期給出正確的值。

0

爲什麼使用cell.internal_value?一般來說,cell.value會給你你想要的。如果openpyxl返回浮動,那麼這是因爲數字在你的文件中是這樣存儲的。

+0

在openpyxl 1.8.5中,我們必須使用cell.internal_value,因爲RawCell沒有'name'屬性。這在更高版本的openpyxl中進行了更改,並且最新版本中我們必須使用cell.value。我在提問結束時提到了這個問題。 – shaunthomas999 2014-09-24 10:13:40

+0

數字在Excel文件的單元格中以整數值形式輸入。但我將它作爲帶有一位小數的浮點值來獲得。 – shaunthomas999 2014-09-24 10:18:41

+0

只看代碼,它看起來像我們總是將數字投到浮動(他們是源文件中的字符串)。這可以改爲先嚐試一下。請提交一個示例文件的錯誤。 – 2014-09-24 11:47:54

相關問題