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

2021-09-24 15:50:12 字數 3629 閱讀 5554

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 ==

2and 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 ==

1else

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...