python excel数据导入到Mysql数据库中

python 操作数据库

import pymysql
from openpyxl.reader.excel import load_workbook

def importExcelToMysql(cur, path):
    num = 1
    # 读取excel文件
    workbook = load_workbook(path)
    # 获得所有工作表的名字
    sheets = workbook.get_sheet_names()
    # 获得第一张表
    worksheet = workbook.get_sheet_by_name(sheets[0])

    # 将表中每一行数据读到sqlstr数组中
    for row in worksheet.rows:
        if num == 1:
            num += 1
            continue
        sqlstr = []
        for cell in row:
            sqlstr.append(cell.value)

        valuestr = [str(sqlstr[0]), int(sqlstr[1]), int(sqlstr[2]), int(sqlstr[3])]
        # valuestr = tuple(valuestr)
        # 将每行数据存到数据库中
        cur.execute("insert into student(name1, language1, math1, english1) VALUES(%s, %s, %s, %s)", valuestr)

# 输出数据库中的内容
def readTable(cursor):
    # 选择全部
    cursor.execute("select * from student")
    # 获得返回值, 返回多条记录, 若没有结果则返回
    results = cursor.fetchall()
    for i in range(0, results.__len__()):
        for j in range(0, 4):
            print(results[i][j], end='\t')
    print('\n')

if __name__ == '__main__':
    # 与数据库建立连接
    conn = pymysql.connect(host='127.0.0.1', user='root', password='mysql', database='wangfei3',
                           port=3306, charset='utf8')
    # 创建游标链接
    cur = conn.cursor()

    # 新建一个database
    # cur.execute("drop database if exists students")
    # cur.execute("create database students")
    # cur.execute("use students")

    sql = "CREATE TABLE  student(name1 VARCHAR (20),language1 INT,math1 INT,english1 INT)"
    # 如果存在students这个表则删除
    cur.execute("drop table if exists student")
    # 创建表
    cur.execute(sql)

    # 将excel中的数据导入数据库中
    importExcelToMysql(cur, "./student.xlsx")
    readTable(cur)

    # 关闭游标链接
    cur.close()
    conn.commit()
    # 关闭数据库服务连接, 释放内存
    conn.close()
  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值