#导入pymysql、pandas
import pymysql
import pandas
#获取excel文档数据
def get_filedata(filename):
file = rf'./datas/{}.xlsx'.format(filename) # 填写excel文档位置
df = pandas.read_excel(file, header=0,dtype=str) ## 读excel文档
# excel文档NAN值转化‘’
# df = df.where(df.notnull(), '')
#将数据存储到列表
infodata = pandas.DataFrame(df).values
return infodata
#获取mysql连接
def get_mysql():
db = pymysql.connect(host='xx.xx.xx.xx', #mysqlIP地址
user='root',#mysql用户名
password='root',#mysql密码
port=3306,#mysql端口号
database='test')#mysql连接的数据库
return db #返回连接值
def main(filename):
db = get_mysql() #调用get_mysql()函数连接
cursor = db.cursor()#游标
infodata = get_filedata(filename)#调用get_filedata()函数
for i in range(0, len(infodata)): #len(infodata)是infodata列表长度
data_each = []
data_each = infodata[i]
# 插入到mysql数据的sql语句 根据自己实际情况填写
sql = "insert into demo (a,b,c,d...) values {}".format(tuple(data_each))#填写自定义插入sql
#tuple()将列表数据转化为元组
sql = sql.replace('NaT','NULL').replace('nan','0')
try:
cursor.execute(sql)#执行sql语句
db.commit()#提交数据
print(i)
except Exception as e:
print(str(i)+"异常")
print(sql)
print(e)
db.rollback()
cursor.close() #关闭游标
db.close() # 关闭数据库连接
if __name__ == '__main__':
filename = '' #填写excel文件名
main(filename)
#需要根据自己实际情况修改四个 地方可以直接拿来使用:
(1)file = rf’./datas/{}.xlsx’.format(filename) # 填写excel文档位置
(2)db = pymysql.connect(host=‘192.168.xx.xx’, #mysqlIP地址
user=‘root’,#mysql用户名
password=‘root’,#mysql密码
port=3306,#mysql端口号
database=‘test’)#mysql连接的数据库
(3) sql = “insert into demo (a,b,c,d…) values {}”.format(tuple(data_each))#填写自定义插入sql
(4)filename = ‘’ #填写excel文件名