python - 如何从 Excel 工作表中提取值,其中很少有行被格式化为数字,但在 Python 中很少有文本

标签 python excel xlrd

我有一个 Excel 工作表,其中某些行的格式为数字,但某些行的格式为文本。我有 python 脚本,它读取每一行并将其转换为 json 并处理它。 Excel 工作表如下所示:

enter image description here

在上图中,我们可以看到第 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 行的值应该是 088019 而不是 8819。我该如何解决这个问题。有什么检查可以帮助我做出决定吗?我正在使用xlrd python 模块。

最佳答案

对于您的示例数据集,这可行:

str(int(sheet.cell_value(i,0))).zfill(3)

关于python - 如何从 Excel 工作表中提取值,其中很少有行被格式化为数字,但在 Python 中很少有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637534/

相关文章:

python - 导入错误 : cannot import name force_text

Python、ArcObjects 和 .AppRef : how to get from IAppROT to IMxDocument?

python - 从字符串中提取二维列表

python - 在 Python 中捕获 imaplib 异常(使用 IMAPClient 包)

python - 更改文件夹中 csv 文件的名称

excel - VBA UserForm 为其参数之一提供运行时错误 91

excel - 加快在 Excel 中循环遍历大型数据集

java - Apache POI 锁定单元格但允许调整列大小

excel - 使用 python 设置单个 Excel 单元格中的单个字符的格式

python - 使用python处理内存中的文件