美文网首页
30行代码玩转excel导入mysql

30行代码玩转excel导入mysql

作者: 日三简 | 来源:发表于2020-04-14 12:27 被阅读0次

    第一步,安装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

          本文链接:https://www.haomeiwen.com/subject/hnmzmhtx.html