Openpyxl 读取 100% 为 'int'

Openpyxl read 100% as 'int'

我正在尝试使用 Openpyxl 读取 excel 文件:

单元格 A1:100%

A2单元格: 89.3%

两者都是excel中的百分比格式。

但是当我在 Openpyxl 中阅读它们时,它得到:

>>> type(ws['A1'].value)
<class 'int'>
>>> type(ws['A2'].value)
<class 'float'>

有没有办法将单元格 A1 的单元格格式读取为 'percentage',或者只是将其读取为 float '1.00'?

我不想在我的代码中添加判断,例如 'value==1' 或任何东西。

我的第一个猜测是使用一种方法删除 cella 中的所有 % 符号并将其存储到一个新变量并将其转换为整数然后除以 100 得到一个浮点数 point/integer数字。不过这样做有点奇怪。

你可以return像

res = f"{value * 100}%"

所以 1.00 将是“100%”

我在半小时前发布问题时找到了解决方案...

只需检查

cell.number_format

示例:

value = ws.cell(i, j).value
nf = ws.cell(i, j).number_format
if value == 1 and (nf =='0.0%' or nf == '0.00%'):
    value = '100%'