Excel資料快速匯入mysql的幾個辦法

艾鶴發表於2018-05-15

有時候需要批量插入一批資料到資料庫,有很多種辦法,這裡我用到過三種辦法:

1、通過Excel直接生成insert語句

=CONCATENATE("insert into aisee_pingfen_fengcai(id,order_n,department,subject_n,teacher_name) values('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"');")

這裡寫圖片描述

參見:詳情

2,通過直接匯入Excel到mysql表,如下圖所示:

這裡寫圖片描述

其實,也可以比上圖更簡單,第一步可以直接到最後一步,把最後一步中的檔名從dept.txt改為第一步中的dept..xls就行了

3、通過python解析excel,然後python插入mysql

#解析Excel
import sys
import os
import MySQLdb
import xlrd  #解析Excel需要的庫

#開啟對應的Excel檔案
book = xlrd.open_workbook("abc.xls")
#檢視該excel檔案的表格數 ,一般可能一個Excel有一個表格(sheet),也可能有多個
sheet_num = book.nsheets
print("表個數:")
print(sheet_num)
#檢視該excel檔案的表格名
print(book.sheet_names())
#一個表格一個表格處理,通過下標可以訪問不同的表格,這裡全部都處理了
for j in range(sheet_num):
    sheet = book.sheets()[j]
    print("列數:")
    print(sheet.ncols)
    print("行數:")
    print(sheet.nrows)
    #獲取當前表格的第k行(這裡就要看k行是不是有資料了,沒資料的話,就會讀取失敗)
    #這種情況可以嘗試讀取,比如python中的try: except: 語句讀取
    #這個k需要提前自行指定
    arrModel = sheet.row_values(k)
    #獲取第k行第i列的資料
    #這個i需要提前自行指定
    data1 = arrModel[i]
    data2 = arrModel[i+1]
    data3 = arrModel[i+2]
    ...
    #獲取到資料就可以直接使用MySQLdb庫呼叫插入語句進行資料插入操作了

參考文章:
python執行mysql CUID操作
python解析excel

相關文章