第三方庫xlrd,讀取excel中的數(shù)據(jù)

1、安裝第三方庫=============》xlrd

? ? ? ? pip install xlrd

2、代碼如下,封裝成類的形式,方便調(diào)用,提高復(fù)用性

import xlrd

from xlrdimport xldate_as_tuple

'''

xlrd中單元格的數(shù)據(jù)類型

數(shù)字一律按浮點型輸出,日期輸出成一串小數(shù),布爾型輸出0或1,所以我們必須在程序中做判斷處理轉(zhuǎn)換

成我們想要的數(shù)據(jù)類型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表讀取數(shù)據(jù)

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

# 根據(jù)工作表的名稱獲取工作表中的內(nèi)容(方式①)

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

# 根據(jù)工作表的索引獲取工作表的內(nèi)容(方式②)

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

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

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

# 獲取工作表的有效行數(shù)

? ? ? ? self.rowNum= self.table.nrows

# 獲取工作表的有效列數(shù)

? ? ? ? self.colNum= self.table.ncols

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

? ? def readExcel(self):

? ? ? ? # 定義一個空列表

? ? ? ? datas= []

for iin range(1,self.rowNum):

? ? ? ? ? ? # 定義一個空字典

? ? ? ? ? ? sheet_data= {}

for jin range(self.colNum):

? ? ? ? ? ? ? ? # 獲取單元格數(shù)據(jù)類型

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

# 獲取單元格數(shù)據(jù)

? ? ? ? ? ? ? ? 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:

? ? ? ? ? ? ? ? ? ? # 轉(zhuǎn)成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

# 循環(huán)每一個有效的單元格,將字段與值對應(yīng)存儲到字典中

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

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

? ? ? ? ? ? # 再將字典追加到列表中

? ? ? ? ? ? datas.append(sheet_data)

# 返回從excel中獲取到的數(shù)據(jù):以列表存字典的形式返回

? ? ? ? return datas

if __name__== "__main__":

? ? def num(x,y):

? ? ? ? data_path= date_path

sheetname= "Sheet1"

? ? ? ? get_data= ExcelData(data_path, sheetname)

datas= get_data.readExcel()

print(datas)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、xlrd庫的安裝 直接使用pip工具進(jìn)行安裝(當(dāng)然也可以使用pycharmIDE進(jìn)行安裝,這里就不詳述了) p...
    Near尼爾閱讀 1,456評論 0 0
  • #!/usr/bin/env python # -*- coding: utf-8 -*- #coding=utf...
    BoyT9閱讀 276評論 0 0
  • 我們之前已經(jīng)學(xué)習(xí)了xlrd這個庫,這個庫是讀取excel表格內(nèi)信息的,它并不能寫入信息,這時候我們需要使用xlwt...
    Davidham3閱讀 7,835評論 0 1
  • 哦吼吼,又研究了幾天,把FMDB這個封裝好的數(shù)據(jù)庫搞定了,寫了個簡單的例子,基于FMDB的添刪改查操作,界面很一般...
    lichengjin閱讀 671評論 0 0
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    余生動聽閱讀 10,880評論 0 11

友情鏈接更多精彩內(nèi)容