python 讀取excel文件生成sql文件實(shí)例詳解
學(xué)了python這么久,總算是在工作中用到一次。這次是為了從excel文件中讀取數(shù)據(jù)然后寫入到數(shù)據(jù)庫中。這個(gè)邏輯用java來寫的話就太重了,所以這次考慮通過python腳本來實(shí)現(xiàn)。
在此之前需要給python添加一個(gè)xlrd模塊,這個(gè)模塊是專門用來操作excel文件的。
在mac中可以通過 easy_install xlrd 命令實(shí)現(xiàn)自動(dòng)安裝模塊
import xdrlib ,sys import xlrd def open_excel(file= a.xlsx'): try: data = xlrd.open_workbook(file)#打開excel文件 return data except Exception,e: print str(e) def excel_table_bycol(file='a.xlsx',colindex=[0],table_name='Sheet1'): data = open_excel(file) table = data.sheet_by_name(table_name)#獲取excel里面的某一頁 nrows = table.nrows#獲取行數(shù) colnames = table.row_values(0)#獲取第一行的值,作為key來使用,對(duì)于不同的excel文件可以進(jìn)行調(diào)整 list = [] #(1,nrows)表示取第一行以后的行,因?yàn)榈谝恍型潜眍^ for rownum in range(1,nrows): row = table.row_values(rownum) if row: app = {} for i in colindex: app[str(colnames[i]).encode("utf-8")] = str(row[i]).encode("utf-8")#將數(shù)據(jù)填入一個(gè)字典中,同時(shí)對(duì)數(shù)據(jù)進(jìn)行utf-8轉(zhuǎn)碼,因?yàn)橛行?shù)據(jù)是unicode編碼的 list.append(app)#將字典加入列表中去 return list def main(): #colindex是一個(gè)數(shù)組,用來選擇讀取哪一列,因?yàn)橥鵨xcel中的一小部分才是我們需要的 tables = excel_table_bycol(colindex=[1,4],table_name=u'areaCode') file = open('channel_area_code.sql','w')#創(chuàng)建sql文件,并開啟寫模式 for row in tables: if row['area_code'] != '': file.write("update table_name set para1='%s' where para2='%s';\n"%(row['para1'],row['para2']))#往文件里寫入sql語句 if __name__=="__main__": main()
這并非是一個(gè)通用的python腳本,還是需要根據(jù)excel文件的格式作出一些調(diào)整,但是代碼并不復(fù)雜,開發(fā)速度也很快,比以前用java是輕松多了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
