欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

python将excel表格中的数据导入数据库表中

时间:2023-05-24
python将excel表格中的数据导入数据库表中

excel表python代码可能遇到的异常参考文档

#使用excel表格跑数据

写一个python脚本,将excel表格中的数据导入到mysql数据库中

excel表


excel表格的每一页都是相同的列数,第一行是描述,所以从第二行开始导入数据

python代码

import tracebackimport pymysqlimport xlrd''' 连接数据库 args:db_name(数据库名称) returns:db'''def mysql_link(de_name): try: db = pymysql.connect(host="xxx", # IP地址 port=xxx, # 端口号 user="xxx", # 用户名 password="xxx", # 密码 db=de_name, # 数据库名 charset='utf8') return db except: print("could not connect to mysql server")''' 读取excel函数 args:excel_file(excel文件,目录在py文件同目录) returns:book'''def open_excel(excel_file): try: book = xlrd.open_workbook(excel_file) # 文件名,把文件与py文件放在同一目录下 return book except: print(traceback.print_exc()) print("open excel file failed!")''' 执行插入操作 args:db_name(数据库名称) table_name(表名称) excel_file(excel文件名,把文件与py文件放在同一目录下)'''def store_to(db_name, table_name, excel_file): db = mysql_link(db_name) # 打开数据库连接 cursor = db.cursor() # 使用 cursor() 方法创建一个游标对象 cursor book = open_excel(excel_file) # 打开excel文件 sheets = book.sheet_names() # 获取所有sheet表名 for sheet in sheets: sh = book.sheet_by_name(sheet) # 打开每一张表 row_num = sh.nrows print(row_num) list = [] # 定义列表用来存放数据 for i in range(1, row_num): # 第一行是标题名,对应表中的字段名所以应该从第二行开始,计算机以0开始计数,所以值是1 row_data = sh.row_values(i) # 按行获取excel的值 value = (row_data[0], row_data[1], row_data[2], row_data[3]) # 选择获取第几列 list.append(value) # 将数据暂存在列表 # print(i) sql = "INSERT INTO " + table_name + " ( type,operator,name,remark )VALUES(%s,%s,%s,%s)" # 插入的sql语句 cursor.executemany(sql, list) # 执行sql语句 db.commit() # 提交 list.clear() # 清空list print("worksheets: " + sheet + " has been inserted " + str(row_num) + " datas!") cursor.close() # 关闭连接 db.close()if __name__ == '__main__': # store_to(数据库名,表名,excel文件名) store_to('fas', 'strategy_operators', 'operator.xlsx')

可能遇到的异常

1.文件找不到
把文件放在运行的py文件同目录下
2.Excel xlsx file; not supported
这里可能会遇到一个异常,**raise XLRDError(FILE_FORMAT_DEscriptIONS[file_format]+’; not supported’)**原因是xlrd的版本不对,可以改为1.2.0版本的

pip uninstall xlrdpip install xlrd==1.2.0

参考文档

使用python,将excel数据批量导入数据库
python的xlrd读取excel数据失败

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。