import cx_Oracle
import xlrd
###读取excel数据####
path=r'D:\*************\数据清单.xlsx'
###打开指定excel的特定sheet页并将数据存放于临时二维列表中
def open_excel(path,sheet_num):
####path:excel路径,sheet_num:sheet页序号,第几个sheet页
file=xlrd.open_workbook(path)
file_8=file.sheets()[sheet_num]
sheet_row=file_8.nrows
sheet_col=file_8.ncols
data_list=[[] for i in range(sheet_row-1)]###生成一个二维列表,用于存放excel数据
for i in range(1,sheet_row):
for j in range(sheet_col):
data_list[i-1].append(file_8.cell_value(i,j))####data_list从i-1下表开始插入
return data_list
#####与Oracle数据库建立连接
def conn_db(usr,pwd,dsn):
db=cx_Oracle.connect(usr,pwd,dsn)
return db
usr='usr1'
pwd='usr1'
dsn='**.**.***.***:1521/test'
db=conn_db(usr,pwd,dsn)
dbcursor=db.cursor()
dbcursor.execute('truncate table tab_test')####先清空表中数据
exec_sql='insert into tab_test(xh, tabname_cn, \
tabname_en, system) values(:1,:2,:3,:4)' ######1,2,3,4占位要插入的数据
data_list=open_excel(path,7) ###打开第七个sheet页
for i in range(len(data_list)):
dbcursor.execute(exec_sql,data_list[i][:4])####目标表只有4列,只将前4列插入目标表,注意插入的列数量要保持一致,否则报错无效绑定变量等错误
db.commit()
dbcursor.close()
data_list.clear()