python讀取excel文件(xlrd)

讀取excel的包的分析
pandas,numpy,雖然功能強大,但需要重新定義excel,效率低。
xlutils,xlrd(read only),xlwt(write only,需要創建新工作表)
xutils可實現讀寫切換,對讀取包重新編碼,但影響原三方包(xlrd)函數調用,xlwt讀寫功能有限。最終採用改後邏輯。
openpyxl:直接讀寫excel文檔,可直接修改數據,可能會影響原數據。

調包

import xlrd

打開文件

data = xlrd.open_workbook('文件名.xlsx')

查看頁名

print(data.sheet_names())

輸出sheet1、sheet2等頁名,一般用不上,因爲可以用下表取頁

獲取某頁

sheet = data.sheet_by_name('sheet1')
sheet = data.sheet_by_index(0)

兩個方法都行,一般用第二個,因爲第一個還得事先知道頁名,第二個直接指定下標就行了

獲取行數和列數

print(table.nrows)
print(table.ncols)

獲取內容

獲取整行的值和整列的值,返回的結果爲數組
整行值:table.row_values(start,end)
整列值:table.col_values(start,end)
參數 start 爲從第幾個開始打印,end爲打印到哪個位置結束,默認爲none
print(table.row_values(0))
print(table.col_values(1))

獲取某個單元格的值,例如獲取B3單元格值
print(table.cell(3,2).value)

舉例

把excel文件內容讀到列表list裏面

import xlrd
 
table = xlrd.open_workbook("文件名.xlsx")
sheet = table.sheet_by_index(0)
content = []

# 第一讀一個,方便特殊表格的操作
for i in range(sheet.nrows):
    tmp = []
    for j in range(sheet.ncols):
        tmp.append(sheet.cell_value(i,j))
    content.append(tmp)
for i in range(sheet.nrows):
    print(content[i])

# 或者一次讀一行
for i in range(sheet.nrows):
    content.append(sheet.row_values(i))
for i in range(sheet.nrows):
    print(content[i])

 

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