當前位置:成語大全網 - 書法字典 - mac如何通過python將大量excel數據導入mysql?

mac如何通過python將大量excel數據導入mysql?

通過python將大量excel數據導入mysql

使用Python從EXCEL中讀取兩列數據並存儲在列表中,然後連接數據庫,通過insert語句與列表內容相結合的方式導入數據庫;然後從數據庫中讀取表格的字段和內容,並將其存儲在新的EXCEL表格中。

以下是導入的核心代碼:

#只需按照說明進行安裝。

將win32com.client作為win32導入

導入MySQLdb

app='Excel '

#啟動EXCEL程序

XL = win32 . gen cache . ensure dispatch(' % s . Application ' % app ')

#打開相應的EXCEL文件

xlbook=win32。調度(' Excel。application '). workbooks . open(' D:\ \ pyd \ \ ops data . xls ')

#讀取EXCEL工具表,打開表導入數據。

sh=xlbook。工作表(“工作表2”)

#創建壹個空列表和兩個循環參數。

dfun=[]

jcount=2

ncount=1

#從第壹列開始向下循環,找到空的行並返回行數,即第壹個ncount行為空。

對於範圍內的ncount(1,65566):

如果噓。單元格(ncount,1)。值= =無:

破裂

否則:

繼續

#打印n計數、測試代碼、測試n計數值

#EXCEL中的數據排列為第壹行中的字段和第二行中的數據,因此循環從第二行開始,兩列數據合並為壹個列表。

#列表結構是[('a ',' b '),(' c ',' d')]

對於範圍內的jcount,ncount):

dfun.append((sh。單元格(jcount,1)。值,sh。單元格(jcount,2)。值))

#關閉EXCEL程序

#xl。應用程序.退出()

#打印dfun,測試代碼測試dfun的數據。

#創建壹個空列表fo來存儲字段,讀取EXCEL第壹行中的字段並存儲在fo中。

fo=[]

icount=1

對於範圍內的icount(1,2):

fo.append((sh。單元格(1,icount)。值,sh。單元格(1,icount+1)。值))

#測試代碼,打印輸出

#打開MYSQL鏈接

conn = mysqldb . connect(host = ' localhost ',user='root ',passwd='0.789asd ',db='python ')

#獲取光標操作

cursor=conn.cursor()

#創建壹個空表

cursor . execute(" create table test("+fo[0][0]+" varchar(100),"+fo[0][1]+" varchar(100));")

#使用executemany命令,通過insert語句將LIST和dfun中的數據寫入數據庫。

cursor.executemany(" "插入測試值(%s,% s);""",dfun)

#確認數據操作。請註意,如果沒有命令conn.commit(),就無法將數據插入數據庫。

conn.commit()

#執行查詢以檢查結果

count = cursor . execute(' select * from test ')?

“打印”有%s條記錄“%計數”

#重置光標位置

cursor.scroll(0,mode='absolute ')

#搜索所有結果

results = cursor.fetchall()?

#測試代碼,打印結果

#獲取MYSQL中的數據字段

fields = cursor.description

#將字段寫入新EXCEL表格的第壹行

sh2=xlbook。工作表(“工作表3”)

#空白工作表3

sh2。牢房,安全

對於範圍內的if(1,len(fields)+1):

sh2。單元格(1,ifs)。值=字段[ifs-1][0]

#將讀取的數據填入相應的行和列

ics=2

jcs=1

對於範圍(2,len(結果)+2)內的IC:

對於範圍內的jcs(1,len(字段)+1):

sh2。細胞(ics,jcs)。值=結果[ics-2][jcs-1]

#關閉EXCEL程序

xl。應用程序.退出()

#關閉光標和查詢鏈接

cursor.close()

conn.close()