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()

 

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