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