#如果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)
(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...