本文实例讲述了python使用xlrd实现检索excel中某列含有指定字符串记录的方法。分享给大家供大家参考。具体分析如下:
这里利用xlrd,将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
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程序设计有所帮助。