1)导包
import cx_Oracle
import xlrd
2)初始化数据连接
self.conn = cx_Oracle.connect('用户名/密码@ip:port/数据库名')
print(self.conn)
3)获取excel数据
- 打开excel文件
file = xlrd.open_workbook(r'./port2.xlsx')
- 获取所有的sheet的名称
sheet_names = file.sheet_names()
- 通过索引获取要操作的工作表
table = file.sheets()[0]
- 获取最大行数
len = table.nrows
- 获取第一行的数据
row=table.row_values(0)
- 获取第一列的数据
col=table.col_values(0)
- 以行遍历,获取每一行的数据
for row in range(1, len): data = table.row_values(row)
- 获取整个sheet数据
data = [table.row_values(row) for row in range(1, table.nrows)]
4)导入Oracle数据库
- 插入SQL语句
insert into TEMP(CODE,CNAME,ENAME,LASTUPDATE) values(:1,:2,:3,to_date(:4, 'dd-mm-yyyy'))
- 执行SQL,并提交
cursor = self.conn.cursor() cursor.execute(v_sql,[XX,XX,XX,2022/3/1]) self.conn.commit()
- 关闭路由
cursor.close()
5)关闭数据库连接
self.conn.close()
拓展知识
获取文件夹下所有的excel文件路径
from pathlib import Path
folder_path = Path('D:\\project\\data\\')
file_list = folder_path.glob('*.xls*') # 获取文件夹下所有工作簿的文件路径
lists = [] # 创建一个空的列表,用于存储提取的工作簿名
for i in file_list: # 遍历已获取的文件路径
file_name = i.name # 提取工作簿的文件名
lists.append(file_name) # 将已提取的文件名添加到列表中
print(lists) # 打印出已提取的文件名列表