30行代码玩转excel导入mysql

第一步,安装openpyxl和mysql环境

pip install openpyxl
pip install mysql-client
pip install pymysql

第二步,整理excel

注意此部要去除那些公式类,方法是选中有公式那一列的所有值,复制,再选择性粘贴,选择数值,然后,公式就被清除了。不然,openpyxl给你取出的值就是公式值。

第三步,分析excel和插入sql算法

#coding=utf-8
import pymysql

from openpyxl import load_workbook
import string

wb = load_workbook("birth-20200317.xlsx")
sheet = wb.get_sheet_by_name("Sheet1")

# print(sheet.max_row)
# print(sheet.max_column)
irow = sheet.max_row
icol = sheet.max_column

#连接配置信息
config = {
    'host': 'localhost',
    'port': 3306,
    'user': 'root',
    'password': 'root',
    'db': 'hrbirthwish',
    'charset': 'utf8',
    'cursorclass': pymysql.cursors.DictCursor,
}
# 创建连接
conn = pymysql.connect(**config)

g_col_total = 6

#执行sql语句
try:
    with conn.cursor() as cursor:
        #执行sql语句,插入记录
        sql = "insert into ygxx(id,xingming,sfzhm,csrq,lxdh,lysj) values(%s, %s, %s, %s, %s, %s)"
        for ix in range(1, irow):
            pt = []
            ipt = 0
            for iy in string.ascii_uppercase:
                ipt = ipt + 1
                if ipt <= g_col_total:
                    pt.append(sheet["%s%d" % (iy, (ix+1))].value)
                else:
                    break
            cursor.execute(sql, tuple(pt))
        # 没有设置默认自动提交,需要主动提交,以保存所执行的语句
        conn.commit()
finally:
    conn.close()

这是要导入的excel文件:


ScreenClip.png

你可能感兴趣的:(30行代码玩转excel导入mysql)