使用Python搜索Excel文件

0 投票
1 回答
10682 浏览
提问于 2025-04-18 11:09

首先,我是个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): 这样。

撰写回答