如何在python中使用openpyxl从excel获取浮点值?

时间:2016-05-10 04:49:08

标签: python excel openpyxl

我正在阅读Excel表格并打印从中返回的数据。但是当单元格中的数据是浮点值时,输出将打印为Long int。如何使用openpyxl从Excel工作表中获取浮点值(使用openpyxl,因为它具有良好的文档)。我知道我可以使用float关键字进行转换,但是如果在循环中使用它也不起作用。循环也给出了字符串作为输出。
以下是excel数据示例

      A         B              C              D

1  Device    Manufacturer   LMP Version  No.of Devices
2   DUT       CSR           4.0            1
3   REF1      Broadcom      4.0            3

代码是:

import openpyxl
wb=openpyxl.load_workbook('/home/workspace/python/Book1.xlsx')
s = wb.get_sheet_by_name('Setup')     
for j in s['A1':'D3']:
            for cel in j:
                    print cel.coordinate,cel.value
            print '-------------'

输出是:

A1 Device
B1 Manufacturer
C1 LMP Version
D1 No. of Devices
-------------
A2 DUT
B2 CSR
C2 4
D2 1
-------------
A3 REF1
B3 Broadcom 
C3 4
D3 3

LMP版本是Long int,如何获取浮点值?

1 个答案:

答案 0 :(得分:1)

如果存储的数字为4.0,则实际上excel仅将其存储为4,并且不会将.0存储在其内部结构中。因此,在excel中,您需要将它们转换为文本而不是数字。

考虑这个示例excel文件:

enter image description here

现在使用7.zip或任何其他工具解压缩它并导航到sheet1.xml,如下所示:

enter image description here

在任何文本编辑器中打开xml(推荐使用notepad ++)

你会发现.0没有存储在其中。

<c r="B4" s="2"><v>4</v></c>

<c r="B5" s="2"><v>5</v></c>

<c r="C5"><v>0.82548104138781497</v></c>