使用Python搜索Excel文件
首先,我是个Python初学者,所以请原谅我问这个简单的问题 :D 我想用Python(版本2.7)在一个*.xls文件中查找一个特定的单词。
简单的问题描述: 1. 输入文件是test.xls 2. 我想找的目标词是2,我只想提取那些单元格中只包含2的内容,而不是包含2的其他内容(例如:单元格的值是2 -> 对了!单元格的值是2345 -> 错了!!)
下面是我的代码:
book = open_workbook('test.xls',on_demand=True)
item = 2
row=-1
n=0
for name in book.sheet_names():
if name.endswith('Traceability Matrix'):
sheet = book.sheet_by_name(name)
rowIndex = -1
for cell in sheet.col(1): #
n=n+1
if item in cell.value:
print "VAL ",cell.value
print "ROW ",sheet.row(n)
break
if row != -1:
cells = sheet.row(row)
for cell in cells:
print">>", cell.value
book.unload_sheet(name)
现在,我的输出是包含不止2的行(参见上面的错误案例,第2点),下面是“打印”的结果:
行 [text:u'SRS5617\nSRS5618\nSRS5619\nSRS5620', text:u'RQ - 5282', empty:'', text:u'Function Plus', text:u'See Note ', empty:'', empty:'', empty:'', empty:'', empty:'', empty:'', text:u'Code inspection', text:u'(**), 2']
有人能帮我吗?有什么建议吗?
谢谢!!!!!!
1 个回答
2
你的问题出在这几行代码上:
if item in cell.value:
print "VAL ",cell.value
print "ROW ",sheet.row(n)
break
这里的搜索是看单元格的值里有没有一个“2”,而不是看它的值是否等于2。
你可以把它改成 if int(cell.value) == int(item):
这样。