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