我有一个 Excel 工作表,其中某些行的格式为数字
,但某些行的格式为文本
。我有 python 脚本,它读取每一行并将其转换为 json 并处理它。 Excel 工作表如下所示:
在上图中,我们可以看到第 98、99、100、101、102 行第 1 列中的值被格式化为文本,而第 103、104 行第 1 列中的值被格式化为数字。我有下面的 python 代码来访问它:
import xlrd
wb = xlrd.open_workbook("file.xlsx")
sheet = wb.sheet_by_index(4)
for i in range(4, 185): #from 5th row to 186th row
data = dict()
print(str(sheet.cell_value(i, 0)))
data['ProductNumber'] = str(sheet.cell_value(i, 0))
我必须将值保存在 str
中,因此我使用了 str
。但我得到上面第 98 到 104 行的结果如下
ROW Value Extracted
98 907
99 088
100 019
101 274
102 905
103 290.0
104 971.0
上面的结果对于第 98 到 102 行来说看起来不错,但对于 103、104 行来说是错误的。它应该只是 290 和 971
。为此,我在 str
之前放置了一个 int
,如下所示:
str(int(sheet.cell_value(i, 0)))
现在使用上面的结果如下所示:
ROW Value Extracted
98 907
99 88
100 19
101 274
102 905
103 290
104 971
这又是错误的,因为第 99 行和第 100 行的值应该是 088
和 019
而不是 88
和 19
。我该如何解决这个问题。有什么检查可以帮助我做出决定吗?我正在使用xlrd python 模块。
最佳答案
对于您的示例数据集,这可行:
str(int(sheet.cell_value(i,0))).zfill(3)
关于python - 如何从 Excel 工作表中提取值,其中很少有行被格式化为数字,但在 Python 中很少有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637534/