[英]xlrd read number as string
我試圖從一個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')
這是相同的價值。 所有不同的是如何將值打印到屏幕上。 你得到的科學記法是因為打印數字str
就被調用了。 當您打印值列表時,列表的內部__str__
方法會在其每個元素上調用repr
。 嘗試print(repr(values[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)
使用print "%d" %(values[0])
%d用於打印整數值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.