Python讀取excel指定列生成指定sql腳本的方法
需求
最近公司干活,收到一個需求,說是讓手動將數(shù)據(jù)庫查出來的信息復(fù)制粘貼到excel中,在用excel中寫好的公式將指定的兩列數(shù)據(jù)用update這樣的語句替換掉。
例如:
有個A庫,其中有兩個A.01和A.02字段,需要將這兩個字段替換到下面的sql語句中,
update A set A.01 = 'excel第一列的值' where A.02 = 'excel第二列的值'
雖然excel中公式寫好了,但是還需要將總計(jì)的那行復(fù)制粘貼到txt文檔中,所以索性太麻煩,果斷用Python寫了一個自動化的腳本,雖然查出的數(shù)據(jù)還需要手動復(fù)制excel中,但是后續(xù)操作即可用腳本完成
讀取excel指定列實(shí)現(xiàn)生成txt
廢話不多說直接上代碼:
#coding=utf-8 from openpyxl import load_workbook #第一套servicebus.t_spis_servicebus_svcmain表的 #讀取excel的數(shù)據(jù) def read_excel(): #打開一個workbook wb = load_workbook(filename='xxx.xlsx') #獲取所有表格(worksheet)的名字 sheets = wb.get_sheet_names() #遍歷每一個sheet,并且拿到worksheet對象 for i in range(len(sheets)): ws = wb.get_sheet_by_name(sheets[i]) #聲明list list_A_B = [] #遍歷A,B列的所有數(shù)據(jù)值,ws.max_row:獲取最大行數(shù) for rowNum in range(1,ws.max_row+1): if (ws.cell(row=rowNum,column=1).value != None) and (ws.cell(row=rowNum,column=2).value != None): #ws.cell(row=rowNum,column=1).value:拿到指定列的行數(shù)據(jù) sql = 'update A set A.01=' + "'" + ws.cell(row=rowNum,column=1).value + "' " + 'where A.02=' + "'" + ws.cell(row=rowNum,column=2).value + "'"+ ';' list_A_B.append(sql) #print(list_A_B) text_save(list_A_B,'A.txt') print(str(sheets[i]) + '已完成!') print('執(zhí)行成功!') #將讀取的數(shù)據(jù)存入txt文檔中 def text_save(content,filename,mode='a'): #打開文件 file = open(filename,mode) for i in range(len(content)): number = content[i] + '\n' file.write(number) file.close() if __name__ == '__main__': read_excel()
總結(jié)
其中用到的是openpyxl這個庫,個人感覺非常好用,初步寫的時候參考了一下國外大佬的一篇博客,附上鏈接:
以上這篇Python讀取excel指定列生成指定sql腳本的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
深入分析在Python模塊頂層運(yùn)行的代碼引起的一個Bug
幾個星期前, 我的同事跑過來, 說發(fā)現(xiàn)一個奇怪的Bug: 在使用Python的subprocess運(yùn)行子進(jìn)程時, 當(dāng)子進(jìn)程運(yùn)行失敗時居然沒有拋出錯誤!2014-07-07Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域
這篇文章主要為大家詳細(xì)介紹了如何通過Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下2023-04-04詳解Python調(diào)用系統(tǒng)命令的六種方法
這篇文章主要介紹了詳解Python調(diào)用系統(tǒng)命令的六種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python實(shí)現(xiàn)短網(wǎng)址ShortUrl的Hash運(yùn)算實(shí)例講解
這篇文章主要介紹了Python實(shí)現(xiàn)短網(wǎng)址ShortUrl的Hash運(yùn)算,較為詳細(xì)的分析了Python短網(wǎng)址運(yùn)算的算法原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-08-08