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
 
posted @ 2024-06-04 10:20  一加一  阅读(52)  评论(0编辑  收藏  举报