python合并 excle表格至MySQL

需求背景:现在有九百多个excle表格,每个表格的格式都相同,需要把这些表格的内容都合并到一块,同时将文件名也增加到合并后的表格中,座位每一个excel的标识之一。

部分文件截图:

实现代码;

import xlrd, xlwt   # 读写excle文件的两个库
import os  # 操作文件的库
import pymysql   # 连接MySQL的库


dir_str = r'D:\test_excle'  # 指定存放excel文件地址
file_name = os.listdir(dir_str)  # 返回指定目录下的所有文件和目录名
file_dir = [os.path.join(dir_str, x) for x in file_name]
for filename in file_dir:
    inpath = filename  # excel文件所在路径
    extract(inpath)

def extract(inpath):
    data = xlrd.open_workbook(inpath, encoding_override='utf-8')
    table = data.sheets()[0]  # 选定表
    nrows = table.nrows  # 获取行号
    ncols = table.ncols  # 获取列号

    for i in range(2, nrows):  # 第0行为表头
        file_base = os.path.splitext(os.path.basename(inpath))[0]
        # 如果文件名中有不要的字符串,可以用正则抽出需要的内容
        # 场馆编号 = re.sub("[A-Za-z0-9_\!\%\[\]\,\。]", "", file_base)  
        alldata = table.row_values(i)  # 循环输出excel表中每一行,即所有数据
        data = pymysql.connect("localhost", "root", "123456", "test_excle")  # 数据库连接信息
        cursor = data.cursor()
        try:
            sql = "insert into tb_员工信息表(场馆编码,员工编号,姓名,职务,电话,性别) " \
                   "values('%s', '%s','%s','%s','%s','%s','%s','%s','%s')" % \
                   (file_base, alldata[0], alldata[1], alldata[2], alldata[3], alldata[4])
            cursor.execute(sql)
            # 提交到数据库执行
            data.commit()

        except Exception as e:
            data.rollback()
            print("数据插入错误:case%s" % e)
        finally:
            # 关闭游标连接
            cursor.close()
            # 关闭数据库连接
            data.close()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章