Python批量导入Excel数据到MySQL
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time: 2020/11/20 14:30# @Author: lumia98@vip.qq.com# @File: Excel# @Software: PyCharmimport xlrdimport pymysqlclass Add_Excel_Data_To_MySQL(object):"""Ex
·
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/20 14:30
# @Author : lumia98@vip.qq.com
# @File : Excel
# @Software: PyCharm
# 批量导入Excel数据到MySQL
import xlrd
import pymysql
class Add_Excel_Data_To_MySQL(object):
"""
Excel表格数据批量导入到MySQL库
"""
# pymysql连接
def conn_pymysql(self, host, dbuser, dbpass, dbname):
# 连接MySQL
self.conn = pymysql.connect(host=host, user=dbuser, passwd=dbpass, db=dbname)
# 获得游标对象, 用于逐行遍历数据库数据
self.cursor = self.conn.cursor()
def excel_path(self, file_path, excle_table_name):
self.excel = xlrd.open_workbook(file_path)
self.sheet_name = self.excel.sheet_by_name(excle_table_name)
# 循环Excel表格数据,并且写入到MySQL
def for_excel_insert_mysql(self, db01, db02, db03, db04, db05, db06, db07):
"""
如果有其他字段请添加
:param db01: MySQL表里的第一个需要手动添加数据的字段
:param db02: MySQL表里的第二个需要手动添加数据的字段
:param db03: MySQL表里的第三个需要手动添加数据的字段
:param db04: MySQL表里的第四个需要手动添加数据的字段
:param db05: MySQL表里的第五个需要手动添加数据的字段
:param db06: MySQL表里的第六个需要手动添加数据的字段
:param db07: MySQL表里的第七个需要手动添加数据的字段
:return:
"""
# 插入到MySQL
self.query = "INSERT INTO machine ({}, {}, {}, {}, {}, {}, {}) VALUES (%s, %s, %s, %s, %s, %s, %s)".format(db01,db02,db03,db04,db05,db06,db07)
# 创建一个for循环迭代读取xls文件每行数据的;
# 从第二行开始导入;
# 如果没有标题,则1改成0
for r in range(1, self.sheet_name.nrows):
# 导入7列Excel数据(从第一列开始导入);
# 如果导入的列增加或者减少,请根据实情;
excel_01 = self.sheet_name.cell(r, 0).value,
excel_02 = self.sheet_name.cell(r, 1).value,
excel_03 = self.sheet_name.cell(r, 2).value,
excel_04 = self.sheet_name.cell(r, 3).value,
excel_05 = self.sheet_name.cell(r, 4).value,
excel_06 = self.sheet_name.cell(r, 5).value,
excel_07 = self.sheet_name.cell(r, 6).value
self.values = (excel_01, excel_02, excel_03, excel_04, excel_05, excel_06, excel_07)
# 执行sql语句
self.cursor.execute(self.query, self.values)
# 提交
self.conn.commit()
# 关闭游标
self.cursor.close()
# 关闭数据库连接
self.conn.close()
self.columns = str(self.sheet_name.ncols)
self.rows = str(self.sheet_name.nrows)
print("一共导入了{}列, {}行数据!".format(self.columns, self.rows))
if __name__ == '__main__':
a = Add_Excel_Data_To_MySQL()
# 连接MySQL
a.conn_pymysql(host="172.211.13.11",dbuser="root",dbpass="123456",dbname="manage")
# Excel文件路径
a.excel_path(r"C:\Users\Super\Desktop\machine.xls", "table")
# Excel数据插入MySQL
a.for_excel_insert_mysql(
db01="cname_id",
db02="machine_name",
db03="machine_sn",
db04="monitor_name",
db05="monitor_sn",
db06="to_username",
db07="depart_id"
)
更多推荐
已为社区贡献5条内容
所有评论(0)