Bootstrap

python查找excel中字符串_在Python问题中通过Excel搜索字符串/正则表达式

我是So的新手,对Python比较陌生,所以如果这是一个简单的修复或不适当的问题,我很抱歉。

首先,我的程序通常可以工作,但我正试图实现一些冗余/捕获,以使其健壮。

该程序查看Excel文件的目录(和子目录),分别打开它们,搜索数据(在特定的工作表上),并将其转储到一个csv。由于每个搜索项都有效地用于列头,因此涉及到循环,我希望在这下面有4个值。

我使用正则表达式定义搜索词。

我已经编写了一个函数来搜索Excel工作表中是否与正则表达式匹配。工作表在单元格中具有字符串和其他格式类型,因此字符串的类型(查询)。

1

2

3

4

5

6

7def SearchXLWithRe(regex)

for i in range(1, Row_limit): # row limit is defined by OpenPyXL module

for j in range(1, Column_limit): # same here for column limit

query = ws.cell(row = i, column = j).value

if type(query) == str: # i only want to look at strings

if regex.search(query): # of the responses that are strings, i want to match to the regex

return [i,j]

此函数用于搜索存在的字符串(到目前为止一直如此)。我想在某些Excel文件不包含我要搜索的词,但其他文件包含的时候添加冗余(它可以返回一些空白单元格的组合坐标,例如10001000或其他)。

我试过放一个else,但是由于它在一个excel文档上循环并找到多个字符串,所以所有这些返回都是一个无。

我想我有一个简单的逻辑问题,但我就是看不见;如果有人能给我一些建议,我会感激地(急切地)帮助我的。收到。

我回顾过的问题(但我还是迷路了):

在python中,如何测试变量是否为none、true或false

OpenPYXL+如何在Excel中搜索单元格中的内容,如果内容符合搜索条件,如何更新内容?

如果工作表不包含您要查找的内容,则返回值为None:这是没有显式返回的任何python函数的返回值。

谢谢,是的,这就是我现在得到的(到目前为止建议的答案),即使我知道有价值的东西要找到。我相信我有逻辑问题。只是不知道什么!

1

2

3

4

5

6

7

8def SearchXLWithRe(regex)

for i in range(1, Row_limit): # row limit is defined by OpenPyXL module

for j in range(1, Column_limit): # same here for column limit

query = ws.cell(row = i, column = j).value

if type(query) == str: # i only want to look at strings

if regex.search(query): # of the responses that are strings, i want to match to the regex

return [i,j]

return [x,y] #x,y are the dummy locations

只在for循环之后返回,只有在未找到匹配项时才会执行。

我已经尝试过了——把return [100,100]移动到所有位置(我知道这很愚蠢!)但不幸的是,这并没有起作用——它只是为所寻找的每个值返回None,这意味着它什么也找不到,只是将其丢弃。

编辑:一千个道歉!!!!是的,这把它修好了。起初没有,但在另一个函数中(依赖于这个结果)有一个类似的错误,现在我已经修复了这个错误。非常感谢你。

;