Excel生成sql语句&Python写入数据到数据库
一、Excel生成sql语句
直接按下图步骤操作即可
二、Python插入数据库表数据
参考博客:https://blog.csdn.net/Q821869063/article/details/136566021
1、用excel表准备一份需要插入的数据,如下图
2、代码源码如下
# --coding=utf-8 # 导入读取Excel的库 from openpyxl import load_workbook # 导入操作mysql的库 import pymysql # 文件路径 file = "C:\\Users\\1370\Desktop\\test_data.xlsx" # 打开Excel文件 wb = load_workbook(file) # 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推 data_sheet = wb.worksheets[0] # 存放数据的列表 all_data = [] # 循环从sheet表中读取数据 for i in range(2, data_sheet.max_row + 1): # 读取从第二行(第一行是标题)到最后一行的内容 row_list = [] # 存放每行数据的小列表 for row in data_sheet[i]: row_list.append(str(row.value)) # 将数据转换成字符串后插入到小列表中 all_data.append(row_list) # 将小列表插入到大列表中 # 连接数据库 url = 'rm.aliyuncs.com' username='d_test' passwd='ZI2222' conn = pymysql.connect(host=url, user=username, passwd=passwd,port=3306) # 创建游标对象 cursor = conn.cursor() # 进入指定数据库 cursor.execute("USE `test_manage`;") print("已连接数据库") # 写好预设sql s = "INSERT INTO `notice_conf`(notice_type, notice_type_desc, robot_hook_url,notice_time_start,notice_time_end,is_deleted,is_enabled,certificate_id) VALUES('%s', '%s', '%s','%s', '%s', '%s', '%s', '%s');" # 循环取出数据列表中的每一行数据 for data in all_data: # 拼接sql sql = s % (data[0], data[1], data[2],data[3], data[4], data[5],data[6], data[7]) # 执行sql cursor.execute(sql) # 提交事务,不然MySQL不会成功插入数据 conn.commit() # 打印成功信息 print("所有数据插入成功!")
3、执行代码后,即插入成功
4、遇到的问题解决方案
原有代码的insert语句里是用“%d”格式化处理,然后报如下错误:
TypeError: %d format: a number is required, not str";
解决方案:将所有的格式都改为%s
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步