pandas+pymysql将Excel数据导入MySql

博主在尝试将Excel数据导入MySQL时遇到了问题。首先,尝试了MySQL自带的数据导入功能,但发现它不支持Excel文件。接着,使用Navicat for MySQL尝试导入,但无法完成。最后,博主决定采用Python编程,利用pandas和pymysql库读取Excel数据并插入到MySQL数据库中。这段博客介绍了如何通过Python实现这一过程。
摘要由CSDN通过智能技术生成

1、碰到的问题

昨天,碰到一个问题;需要将客户整理的Excel数据,导入MySql数据库的临时表,然后,根据临时表中的数据,更新MySql库中的数据。

2、解决思路

方法一

首先,尝试mysql自带数据导入,我使用的是Mysql8.0,如下图所示,

找到Data Import 打开导入界面,如下图所示:

经验证,发现该数据导入,只支持自己的导出文件,显然无法导入Excel数据。

方法二

开始尝试第二种方法,Navicat for Mysql,

继续下一步,提示必须输入表名,不知道什么原因,最终无法解决。

方法三

前面两条路走不通,想着,需要写程序来读取Excel中的数据。通过Excel写入数据库,这种情况还是很常见的,

于是,考虑自己写一个,方便以后处理数据。

据说,Python处理Excel数据很方便,于是,暂定为用Python来写,经过百度,基本定位为用pandas库。

import  pandas  as pd
import pymysql
df=pd.read_excel('files/t_tmp.xlsx')#这个会直接默认读取到这个Excel的第一个表单

db = pymysql.connect(host="localhost",
                     user="****",
                     password="****",
                     port=3306,# 端口
                     database="****",
                     charset='utf8')

cursor = db.cursor()

for i in df.index.values:#获取行号的索引,并对其进行遍历:
    #根据i来获取每一行指定的数据 
    v_kdkh=df.iloc[i,0]
    v_bdh=df.iloc[i,1]

    # SQL 插入语句
    sql = "INSERT INTO t_tmp(kh, bdh)  VALUES ('"+str(v_kdkh)+"','"+str(v_bdh)+"');"
    print(sql)
    try:
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # 发生错误时回滚
        db.rollback()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值