Python xlrd模組讀取Excel表中的資料

2022-06-12 23:51:12 字數 3384 閱讀 7336

1、xlrd庫的安裝

直接使用pip工具進行安裝(當然也可以使用pycharmide進行安裝,這裡就不詳述了)

2、xlrd模組的一些常用命令

①開啟excel檔案並建立物件儲存

data = xlrd.open_workbook(檔案路徑)
②獲取檔案中所有工作表的名稱

data.sheet_names()
③根據工作表的名稱獲取裡面的行列內容

table = data.sheet_by_name('

sheet1

')

④獲取工作表的名稱、行數、列數

name = table.name 

rownum = table.nrows

colnum = table.ncols

⑤獲取單元格內容的3種方式

table.cell(i,j).value 

table.cell_value(i,j)

table.row(i)[j].value

⑥獲取單元格資料型別

table.cell(i,j).ctype 

或者type(table.cell_value(i, j)

xlrd的資料型別有:

0 empty,

1 string,

2 number,

3 date,

4 boolean,

5 error

預設從excel中取出的資料列印出來會有問題:

數字一律按浮點型輸出,日期輸出成一串小數,布林型輸出0或1,所以我們必須在程式中做判斷處理轉換成我們想要的資料型別

⑦獲取工作表第一行的所有字段列表

table.row_values(0)
3、寫乙個自動獲取excel表內容的類本**已實現自動轉換單元格資料型別,不會發生整形數字以浮點數顯示,布林型true或false顯示為1,0;日期時間顯示為一連串的小數問題

import

xlrd

from xlrd import

xldate_as_tuple

import

datetime

'''xlrd中單元格的資料型別

數字一律按浮點型輸出,日期輸出成一串小數,布林型輸出0或1,所以我們必須在程式中做判斷處理轉換

成我們想要的資料型別

0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

'''class

exceldata():

#初始化方法

def__init__

(self, data_path, sheetname):

#定義乙個屬性接收檔案路徑

self.data_path =data_path

#定義乙個屬性接收工作表名稱

self.sheetname =sheetname

#使用xlrd模組開啟excel表讀取資料

self.data =xlrd.open_workbook(self.data_path)

#根據工作表的名稱獲取工作表中的內容(方式①)

self.table =self.data.sheet_by_name(self.sheetname)

#根據工作表的索引獲取工作表的內容(方式②)

#self.table = self.data.sheet_by_name(0)

#獲取第一行所有內容,如果括號中1就是第二行,這點跟列表索引類似

self.keys =self.table.row_values(0)

#獲取工作表的有效行數

self.rownum =self.table.nrows

#獲取工作表的有效列數

self.colnum =self.table.ncols

#定義乙個讀取excel表的方法

defreadexcel(self):

#定義乙個空列表

datas =

for i in range(1, self.rownum):

#定義乙個空字典

sheet_data ={}

for j in

range(self.colnum):

#獲取單元格資料型別

c_type =self.table.cell(i,j).ctype

#獲取單元格資料

c_cell =self.table.cell_value(i, j)

if c_type == 2 and c_cell % 1 == 0: #

如果是整形

c_cell =int(c_cell)

elif c_type == 3:

#轉成datetime物件

date = datetime.datetime(*xldate_as_tuple(c_cell,0))

c_cell = date.strftime('

%y/%d/%m %h:%m:%s')

elif c_type == 4:

c_cell = true if c_cell == 1 else

false

sheet_data[self.keys[j]] =c_cell

#迴圈每乙個有效的單元格,將字段與值對應儲存到字典中

#字典的key就是excel表中每列第一行的字段

#sheet_data[self.keys[j]] = self.table.row_values(i)[j]

#再將字典追加到列表中

#返回從excel中獲取到的資料:以列表存字典的形式返回

return

datas

if__name__ == "

__main__":

data_path = "

ttt.xlsx

"sheetname = "

sheet1

"get_data =exceldata(data_path, sheetname)

datas =get_data.readexcel()

print(datas)

在本地建立了乙個excel檔案,內容如下:

**執行後效果展示:

[

, , ,,

]

Python xlrd模組讀取xls檔案

import sys from xlrd import open workbook xlrd用於讀取xld workbook open workbook 記錄人員資訊.xls 開啟xls檔案 sheet name workbook.sheet names 列印所有sheet名稱,是個列表 sheet...

Python xlrd模組讀取Excel表中的資料

1 xlrd庫的安裝 直接使用pip工具進行安裝 當然也可以使用pycharmide進行安裝,這裡就不詳述了 2 xlrd模組的一些常用命令 開啟excel檔案並建立物件儲存 data xlrd.open workbook 檔案路徑 獲取檔案中所有工作表的名稱 data.sheet names 根據...

python xlrd讀取datetime型別資料

使用xlrd讀取出來的時間欄位是類似41410.5083333的浮點數,在使用時需要轉換成對應的datetime型別,下面 是轉換的方法 首先需要引入xldate as tuple函式 from xlrd import xldate as tuple d是從excel中讀取出來的浮點數 xldate...