通過(guò)python將大批excel數(shù)據(jù)導(dǎo)入mysql:
10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有撫順免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
利用Python從EXCEL中讀取兩列數(shù)據(jù)存儲(chǔ)在LIST中然后連接數(shù)據(jù)庫(kù)利用insert語(yǔ)句和LIST 內(nèi)容結(jié)合,導(dǎo)入數(shù)據(jù)庫(kù);然后再?gòu)臄?shù)據(jù)庫(kù)讀取表的字段和內(nèi)容,存放到EXCEL新表中即可。
以下的導(dǎo)入的核心代碼:
#按照說(shuō)明安裝即可
import win32com.client as win32
import MySQLdb
app='Excel'
#啟動(dòng)EXCEL程序
xl=win32.gencache.EnsureDispatch('%s.Application' % app)
#打開相應(yīng)的EXCEL文件
xlbook=win32.Dispatch('Excel.Application').Workbooks.Open('D:\\pyd\\opsdata.xls')
#讀取EXCEL工具表,打開要導(dǎo)入數(shù)據(jù)的表
sh=xlbook.Worksheets('sheet2')
#建立一個(gè)空LIST和兩個(gè)循環(huán)參數(shù)
dfun=[]
jcount=2
ncount=1
#從第一列開始向下循環(huán),找到為空的那一行返回行數(shù),即為第ncount行為空
for ncount in range(1,65566):
if sh.Cells(ncount,1).Value==None:
break
else:
continue
#print ncount,測(cè)試代碼,測(cè)試ncount值
#EXCEL的數(shù)據(jù)安排為第一行是字段,第二行開始是數(shù)據(jù),故從第2行開始循環(huán),將兩列數(shù)據(jù)合并到一個(gè)LIST中
#LIST結(jié)構(gòu)為[('a','b'),('c','d')]
for jcount in range(2,ncount):
dfun.append((sh.Cells(jcount,1).Value,sh.Cells(jcount,2).Value))
#關(guān)閉EXCEL程序
#xl.Application.Quit()
#print dfun,測(cè)試代碼測(cè)試dfun的數(shù)據(jù)
#建立一個(gè)空LIST fo用來(lái)存放字段,讀取EXCEL中第一行的字段存儲(chǔ)到fo中
fo=[]
icount=1
for icount in range(1,2):
fo.append((sh.Cells(1,icount).Value,sh.Cells(1,icount+1).Value))
#測(cè)試代碼,print fo
#打開MYSQL鏈接
conn=MySQLdb.connect(host='localhost',user='root',passwd='0.789asd',db='python')
#獲取游標(biāo)操作
cursor=conn.cursor()
#建立一個(gè)空表
cursor.execute("create table test("+fo[0][0]+" varchar(100),"+fo[0][1]+" varchar(100));")
#利用executemany命令,將LIST,dfun中的數(shù)據(jù)通過(guò)insert語(yǔ)句寫入數(shù)據(jù)庫(kù)
cursor.executemany("""insert into test values(%s,%s);""" ,dfun)
#確認(rèn)數(shù)據(jù)操作,注意如果沒有conn.commit()這個(gè)命令,數(shù)據(jù)無(wú)法被插入到數(shù)據(jù)庫(kù)中
conn.commit()
#執(zhí)行查詢檢查結(jié)果
count = cursor.execute('select * from test')?
print 'has %s record' % count
#重置游標(biāo)位置
cursor.scroll(0,mode='absolute')
#搜取所有結(jié)果
results = cursor.fetchall()?
#測(cè)試代碼,print results
#獲取MYSQL里的數(shù)據(jù)字段
fields = cursor.description
#將字段寫入到EXCEL新表的第一行
sh2=xlbook.Worksheets('sheet3')
#清空sheet3
sh2.Cells.Clear
for ifs in range(1,len(fields)+1):
sh2.Cells(1,ifs).Value=fields[ifs-1][0]
#將讀取的數(shù)據(jù)填入到相應(yīng)的行列中
ics=2
jcs=1
for ics in range(2,len(results)+2):
for jcs in range(1,len(fields)+1):
sh2.Cells(ics,jcs).Value=results[ics-2][jcs-1]
#關(guān)閉EXCEL程序
xl.Application.Quit()
#關(guān)閉游標(biāo)和查詢鏈接
cursor.close()
conn.close()
下載MySQL安裝包,如果是第一次安裝,建議下載DMG安裝包
打開DMG安裝包,雙擊安裝包里的PKG文件
一路點(diǎn)擊“繼續(xù)”,最后點(diǎn)擊“完成”
安裝完成后,打開“系統(tǒng)偏好設(shè)置”,可以看到多處一個(gè)MySQL圖標(biāo),
點(diǎn)擊“MySQL”圖標(biāo),在彈出的界面中,我們注意到MySQL已經(jīng)啟動(dòng),并且是開機(jī)自啟動(dòng)。
安裝好后,最好再創(chuàng)建能在終端中直接使用的MySQL快捷命令。
打開終端,輸入命令:
sudo vim /etc/bashrc
在bashrc中添加創(chuàng)建別名的命令:
alias mysql '/usr/local/mysql/bin/mysql'
alias mysqladmin '/usr/local/mysql/bin/mysqladmin'
編輯完后,需要使用“wq!”命令強(qiáng)制保存內(nèi)容。
重啟終端,然后設(shè)置MySQL的root帳號(hào),輸入命令
mysqladmin -u root password 123456
PS:
在執(zhí)行上述命令時(shí)可能報(bào)錯(cuò):
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
如果碰到,可參考《connect to server at 'localhost' failed》
1、單擊左上角蘋果圖標(biāo)??系統(tǒng)偏好設(shè)置??MySQL? ?start MySQL server,
2、開啟本機(jī)的MySQL數(shù)據(jù)庫(kù)服務(wù),如下圖:
3、打開終端,輸入如下命令:/usr/local/MySQL/bin/mysql -u root -p,其中,root為數(shù)據(jù)庫(kù)用戶名。
4、界面提示輸入密碼:Enter password:若為初次使用該數(shù)據(jù)庫(kù),則默認(rèn)密碼為空,直接回車即可進(jìn)入mysql命令行;若已設(shè)置密碼,則輸入數(shù)據(jù)庫(kù)密碼后,回車,即可進(jìn)入mysql命令行。
5、假設(shè)遠(yuǎn)程主機(jī)的IP為:23.106.134.88,用戶名為root,密碼為123456,打開終端,輸入如下命令:mysql -h 23.106.134.88 -u root -p 123456。
6、界面提示輸入密碼:Enter password:若為初次使用該數(shù)據(jù)庫(kù),則默認(rèn)密碼為空,直接回車即可進(jìn)入mysql命令行;若已設(shè)置密碼,則輸入密碼后,回車,即可進(jìn)入mysql命令行,如下圖:
7、退出mysql命令行:輸入退出命令:exit,再回車即可。
方法/步驟
1:下載MySQL安裝包,如果是第一次安裝,建議下載DMG安裝包
2:打開DMG安裝包,雙擊安裝包里的PKG文件
3:一路點(diǎn)擊“繼續(xù)”,最后點(diǎn)擊“完成”
4:安裝完成后,打開“系統(tǒng)偏好設(shè)置”,可以看到多處一個(gè)MySQL圖標(biāo),
5:點(diǎn)擊“MySQL”圖標(biāo),在彈出的界面中,我們注意到MySQL已經(jīng)啟動(dòng),并且是開機(jī)自啟動(dòng)。
6:安裝好后,最好再創(chuàng)建能在終端中直接使用的MySQL快捷命令。
打開終端,輸入命令:
sudo vim /etc/bashrc
7:在bashrc中添加創(chuàng)建別名的命令:
alias mysql '/usr/local/mysql/bin/mysql'
alias mysqladmin '/usr/local/mysql/bin/mysqladmin'
編輯完后,需要使用“wq!”命令強(qiáng)制保存內(nèi)容。
8:重啟終端,然后設(shè)置MySQL的root帳號(hào),輸入命令
mysqladmin -u root password 123456
PS:
在執(zhí)行上述命令時(shí)可能報(bào)錯(cuò):
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
如果碰到,可參考《connect to server at 'localhost' failed》
0connect to server at 'localhost' failed