簡體   English   中英

xlrd讀取數字作為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM