xlrd读取数字作为字符串

时间:2015-08-20 07:53:49

标签: python xlrd

我试图从一个xls文件中读取一个很长的数字(6425871003976)但是python在将它读取为数字而不是字符串(6.42587100398e + 12)之前保持中继。是否有任何方法可以直接将其作为字符串读取,即使在xls文件中它是一个数字?

values = sheet.row_values(rownum)

它正确显示的值(6425871003976.0)但是当我尝试值[0]时,它已经切换到不正确的值。

解决方案:

这是我使用repr()的解决方案:

if type(values[1]) is float:  
    code_str = repr(values[1]).split(".")[0]
else:
    code_str = values[1]
product_code = code_str.strip(' \t\n\r')

3 个答案:

答案 0 :(得分:2)

这是相同的价值。所有不同的是如何将值打印到屏幕上。你得到的科学记数法是因为打印号码str被调用。当您打印值列表时,列表的内部__str__方法会在其每个元素上调用repr。请改为print(repr(values[0]))

答案 1 :(得分:0)

这是一个示例,它带来了一个单元格的值(在你的情况下是一个int),你需要使用str函数将它转换为一个字符串

from openpyxl import load_workbook
wb = load_workbook(filename='xls.xlsx', read_only=True)
ws = wb['Sheet1']
for row in ws.rows:
    for cell in row:
        cell_str=str(cell.value)

答案 2 :(得分:0)

使用print "%d" %(values[0])

%d用于打印整数值