使用xlrd读取excel时出现数字格式问题

时间:2019-05-07 13:32:01

标签: python excel xlsx xlrd

在xlrd中是否有一种不受限制的读取单元格格式的方式?

我正在读取.xlsx文件,但'formatting_info'不是,也不会实现。

我的数据如下:

     Brand A| Brand B| Brand C|
row1|  45%  |  25%   |  25%   |
row2|  24%  |  8%    |  8%    |
row3|  0.5  |  4     |  0.14  |

我需要读取excel中显示的数据。

要考虑的几个关键点:

  1. 不允许更改库,我必须使用xlrd
  2. 数据类型不是固定的,任何给定的行都可以具有百分比或整数
  3. 我正在使用xlsx个文件,因此formatting_info=True不是一个选项,因为它仅在xls而不是xlsx上可用

我将如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

首先,我想说一遍检查整个行,如果所有值均为0 <= x <= 1,则可能是百分比。

如果要确定,则必须检查单元格的格式。

首先,在您的formatting_info=True中添加xlrd.open_workbook(filepath),这样您就可以执行cell_format = book.xf_list[cell.xf_index]

这是源自Excel数据结构的XF format,但是您可以使用它检查具有两个属性的book.format_map[cell_format.format_key]typeformat_str,它们的值定义为in the documentation(第174页,第5.49章“格式”)。