python使用xlrd实现检索excel中某列含有指定字符串记录的方法
本文实例讲述了python使用xlrd实现检索excel中某列含有指定字符串记录的方法。分享给大家供大家参考。具体分析如下:
这里利用xlrd,将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件
import os import xlrd,sys # input the excel file Filename=raw_input('input the file name&path:') if not os.path.isfile(Filename): raise NameError,"%s is not a valid filename"%Filename #open the excel file bk=xlrd.open_workbook(Filename) #get the sheets number shxrange=range(bk.nsheets) print shxrange #get the sheets name for x in shxrange: p=bk.sheets()[x].name.encode('utf-8') print "Sheets Number(%s): %s" %(x,p.decode('utf-8')) # input your sheets name sname=int(raw_input('choose the sheet number:')) try: sh=bk.sheets()[sname] except: print "no this sheet" #return None nrows=sh.nrows ncols=sh.ncols # return the lines and col number print "line:%d col:%d" %(nrows,ncols) #input the check column columnnum=int(raw_input('which column you want to check pls input the num(the first colnumn num is 0):')) while columnnum+1>ncols: columnnum=int(raw_input('your num is out of range,pls input again:')) # input the searching string and column testin=raw_input('input the string:') #find the cols and save to a txt outputfilename=testin + '.txt' outputfile=open(outputfilename,'w') #find the rows which you want to select and write to a txt file for i in range(nrows): cell_value=sh.cell_value(i, columnnum) if testin in str(cell_value): outputs=sh.row_values(i) for tim in outputs: outputfile.write('%s ' %(tim)) outputfile.write('%s' %(os.linesep)) outputfile.close()
希望本文所述对大家的Python程序设计有所帮助。
赞 (0)