将Excel文件导入mysql数据库
将Excel文件导入数据库
1. 创建所需数据库和表
create database hero; use hero; create table story( ename int, cname char(8), bg varchar(200), title char(8) ); desc story;
2. 将表导入数据库
2.1 windows系统
import pymysql
import numpy as np
import pandas as pd
import xlwings as xw
# 连接数据库
db = pymysql.connect(host=127.0.0.1, user=root, password=密码,dabase=数据库名)
conn = db.cursor() # 获取指针以操作数据库
#1.建立excel表连接
wb = xw.Book(文件名)
#2.实例化工作表对象
sheet = wb.sheets["Sheet1"]
#3.读取单元格内容
for i in range(1,111):
ename = sheet.range((A+str(i))).value
cname = sheet.range((B+str(i))).value
title = sheet.range((C+str(i))).value
bg = sheet.range((D+str(i))).value
sql = finsert into story(ename,cname,bg,title) values ("{
ename}","{
cname}","{
bg}","{
title}")
conn.execute(sql)
db.commit()
conn.close()
db.close()
2.2 Linux系统
经过尝试发现xlwings一般情况下在Linux系统无法运行,经查找解决方法也不容易,所以采用另外一种取巧的方法。
import xlwings as xw
#1.建立excel表连接
wb = xw.Book(rC:Users17954Desktopheros.xlsx)
#2.实例化工作表对象
sheet = wb.sheets["Sheet1"]
text = ""
#3.读取单元格内容
for i in range(1,111):
ename = sheet.range((A+str(i))).value
cname = sheet.range((B+str(i))).value
title = sheet.range((C+str(i))).value
bg = sheet.range((D+str(i))).value
text += "(" + str(int(ename)) +"," + cname + "," +bg+","+title +"),
"
print(text)
即先在Windows系统下获得需要的mysql代码格式,然后直接复制,粘贴到Linux系统下。
#直接一次性多行插入 insert into story(ename,cname,bg,title) value (), (), ... ();
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
Git 拉取远程最新代码
