python xlrd 讀取excel

之前的文章介紹過關於寫入excel表格的方法,近期自己在做一個網站,涉及到讀取excel,然後把數據存到數據庫,故把操作excel的過程記錄下的。

pip3 install xlrd直接pip3安裝。

爲了演示方便,這裏的excel文件直接和python文件放在一個目錄下的,如果是項目中,需要注意excel的文件路徑。

import xlrd
# 操作excel
excel = xlrd.open_workbook("test.xls")
excel.sheet_names() # 獲取excel裏的工作表sheet名稱數組
sheet = excel.sheet_by_index(0) #根據下標獲取對應的sheet表

image

sheet.row_values(0) #獲取第一行的數據
sheet.col_values(0) #獲取第一列的數據
sheet.nrows #獲取總共的行數
sheet.ncols #獲取總共的列數

假設我們需要第二行至最後一行的數據,就可以直接遍歷獲取了

for i in range(1, sheet.nrows):
    row_list = sheet.row_values(i) # 每一行的數據在row_list 數組裏

對於單個的單元格可以通過sheet.cell(row,col) 參數就是row-行、col-列,這個方法得到的是cell對象,sheet.cell(0,0).value value是對應的單元格內容。

還有一種特殊的情況,合併單元格的:   

image

sheet.merged_cells 可以查看合併單元格的情況

print(sheet.merged_cells)
[(0, 1, 1, 3), (4, 10, 1, 2)]

(0, 1, 1, 3) 第一行 第2到3列合併    
(4, 10, 1, 2) 第5到10行 第2列合併    
前兩個參數指行範圍,後兩個參數指列範圍。   
合併單元格的內容取值只有 合併的第一個單元格可以獲取到值,其他爲空。

print(sheet.cell(0, 1).value)
print(sheet.cell(4, 1).value)

自己做的網站,數據就是從excel表格來的,所以就需要對excel表格進行操作,把數據寫到數據庫裏面。我這邊需要使用到的就是遍歷excel行去取值,難度並不高,唯一要注意的就是excel的路徑問題。

media_root = os.path.join(settings.BASE_DIR, 'upload/excel/')
word_path = media_root + "**.xls"

這篇文章介紹的比較簡單,但是用好了這些庫,對我們日常使用還是很有幫助的,提升開發效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章