可能重複:
Integers from excel files become floats?在xlrd中,我如何獲得原始單元格值?
我有一個包含1984
,這xlrd手柄爲number
型Excel電子表格,並因此給我的價值早在浮動1984.0
。我想獲取電子表格中顯示的原始值,如字符串"1984"
。我如何得到這個?
可能重複:
Integers from excel files become floats?在xlrd中,我如何獲得原始單元格值?
我有一個包含1984
,這xlrd手柄爲number
型Excel電子表格,並因此給我的價值早在浮動1984.0
。我想獲取電子表格中顯示的原始值,如字符串"1984"
。我如何得到這個?
使用字符串格式化:
"%d" % mynumber
>>> "%d" % 1984.0
'1984'
唯一一種數量是浮動。附加到單元格的格式確定它是代表日期,小數還是整數。查看格式字符串,並希望它能讓你辨別數字的顯示方式。
如果cell.ctype == xlrd.XL_CELL_NUMBER
然後Excel是1984年存儲爲float,你將需要轉換爲字符串在python
在Excel
= 「1984」將一個字符串 「1984年將是一個字符串,請注意,」不顯示 1984年是#
所以在Excel內部,即1984年存儲爲十進制數,所以1984.0是正確的。您可以更改數字格式以將其顯示爲1984.00或其他任何內容。
那麼你問如何查詢單元格格式來告訴數字格式不是小數?如果是這樣你可能會考慮使用formatting_info = open_workbook的True參數
片= open_workbook( 'types.xls',formatting_info =真 ).sheet_by_index(0)
你有沒有碰到過python- excel.pdf文件來自http://www.python-excel.org/? 這是學習使用xlrd和xlwt的相當不錯的教程。不幸的是,他們說:
我們已經看到open_workbook有一個參數來從Excel文件中加載格式化信息。完成此操作後,所有格式化信息都可用,但提供的詳細信息超出了本教程的範圍。
afaik您可以從xls電子表格中獲取格式化數據...這可能會解決您的問題...(或可能不是...) –
Excel沒有整數。它有一個數字類型(包含日期,整數,浮點數)和格式。格式確定數字類型的顯示方式。該數字類型是一個浮點數。 –
有沒有什麼能夠阻止你在Python中將類型從float轉換爲int? –