我试图从一个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')
答案 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用于打印整数值