python 讀取Excel資料

2022-07-07 02:54:11 字數 2371 閱讀 7589

#

如果xlrd執行報錯,先解除安裝當前安裝的xlrd

#pip uninstall xlrd

#再安裝低版本的xlrd

#pip install xlrd==1.2.0

import

xlrd

import

sysimport

osdef

read_excel_dict(excelpath,sheetname):

ifnot

os.path.exists(excelpath):

print("

error!\nexcel不存在")

sys.exit()

wb = xlrd.open_workbook(excelpath) #

開啟檔案

sheet_names = wb.sheet_names() #

獲取所有工作表名稱

#判斷輸入表名是否實際存在於excel內

if sheetname not

insheet_names:

print("

error!\n輸入表名錯誤,輸入表名為:{}, 實際表名為:{}

".format(sheetname, sheet_names))

sys.exit()

table =wb.sheet_by_name(sheetname)

key = table.row_values(0) #

取第一行作為key值

rownum = table.nrows #

獲取總行數

colnum = table.ncols #

獲取總列數

if rownum <= 1:

print("

資料為空,總行數小於1")

else

: r =

x = 1

for row in range(1,rownum):

cell ={}

#cell['rownum'] = row

values =table.row_values(x)

for col in

range(colnum):

cell[key[col]] =values[col]

x += 1

return

rdef

read_excel_list(excelpath,sheetname):

ifnot

os.path.exists(excelpath):

print("

error!\nexcel不存在")

sys.exit()

wb = xlrd.open_workbook(excelpath) #

開啟檔案

sheet_names = wb.sheet_names() #

獲取所有工作表名稱

#判斷輸入表名是否實際存在於excel內

if sheetname not

insheet_names:

print("

error!\n輸入表名錯誤,輸入表名為:{}, 實際表名為:{}

".format(sheetname, sheet_names))

sys.exit()

table =wb.sheet_by_name(sheetname)

key = table.row_values(0) #

取第一行作為key值

rownum = table.nrows #

獲取總行數

colnum = table.ncols #

獲取總列數

if rownum <= 1:

print("

資料為空,總行數小於1")

else

: r =

x = 1

for row in range(1,rownum):

cell =

values =table.row_values(x)

for col in

range(colnum):

x += 1

returnrif

__name__ == "

__main__":

filepath = "

../data/body.xlsx

"sheetname = "

sheet1

"data =read_excel_dict(filepath, sheetname)

print

(data)

data =read_excel_list(filepath, sheetname)

print(data)

讀取Excel資料

方法2 相當簡單,excel就像資料庫,每個sheet就是乙個table.microsoft.jet.oledb驅動.之後是datareader迴圈,或dataset處理都非常簡單.注意 資料型別的轉換 region set connection string strconn provider mi...

讀取Excel資料

excel2007的連線字串與excel2003的不同。datatable tbsheetname connection.getoledbschematable oledbschemaguid.tables,null 用來獲得sheet的名字 using system using system.io...

讀取excel資料

首先安裝npoi擴充套件包,開啟 管理nuget程式包 搜尋npoi。安裝 1 獲取前台fileupload控制項上傳的資料流 npoi.hssf.usermodel.hssfworkbook b new npoi.hssf.usermodel.hssfworkbook this.file1.pos...