String/regex 在 Python 期中搜索 Excel

String/regex search over Excel in Python issue

我是 SO 的新手,也是 Python 的新手,所以如果这是一个简单的修复或不恰当的问题,我很抱歉。

首先,我的程序通常可以运行,但我正在尝试实施一些 redundancy/catchalls 以使其健壮。

该程序查看 excel 个文件的目录(和 sub-dirs),单独打开它们,搜索数据(在特定 sheet 上),并将其转储到一个 csv。由于每个搜索词都有效地用于列的标题,因此涉及循环,我希望在此之下有 4 个值。

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

我编写了一个函数来搜索 excel sheet 以匹配正则表达式。 sheet 在单元格中有字符串和其他 format-types,因此字符串的类型(查询)。

def 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]

此函数适用于搜索存在的字符串(迄今为止一直如此)。当 some excel 文件不包含我要搜索的术语时,我想添加冗余,但其他人会(它可能只是 return 一些组成的坐标空白单元格,例如 1000,1000 或其他)。

我曾尝试放置一个 else,但由于它在 excel 文档上循环并找到多个字符串,所有这些 return 都是 None。

我想我有一个简单的逻辑问题,但我就是看不出来;如果有人能给我一些建议,我将不胜感激(并热切地!)收到帮助。

我已经复习过的问题(但我还是迷路了):

In Python how should I test if a variable is None, True or False

OpenPyXL + How can I search for content in a cell in Excel, and if the content matches the search criteria update the content?

def 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,只有在找不到匹配的情况下才会执行。