2014-09-23 304 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

相关问题