将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 拉取远程最新代码