Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在excel中搜索特定文本(文本模式),并使用openpyxl将生成的所有行复制到同一工作簿中的另一个工作表中_Python_Excel_Openpyxl - Fatal编程技术网

Python 在excel中搜索特定文本(文本模式),并使用openpyxl将生成的所有行复制到同一工作簿中的另一个工作表中

Python 在excel中搜索特定文本(文本模式),并使用openpyxl将生成的所有行复制到同一工作簿中的另一个工作表中,python,excel,openpyxl,Python,Excel,Openpyxl,我有一个包含多张工作表的excel文件,第3列(包含大约500行)的工作表3包含各种名称。我想在第3列中搜索特定文本,如果匹配,则将整行连同标题行复制到同一excel中的新工作表中 “名称列”的问题是,大多数文本都引用相同的项目,但命名约定不同,因此: अपर तहसीलदार, नायाब तहसीलदार, नायब तहसीलदार, अतिरिक्त तहसीलदार 指的是相同的项目,但写的不同,所以我必须搜索所有的变体 我之前没有Python或openpyxl背景,因此到目前为止我得

我有一个包含多张工作表的excel文件,第3列(包含大约500行)的工作表3包含各种名称。我想在第3列中搜索特定文本,如果匹配,则将整行连同标题行复制到同一excel中的新工作表中

“名称列”的问题是,大多数文本都引用相同的项目,但命名约定不同,因此: अपर तहसीलदार, नायाब तहसीलदार, नायब तहसीलदार,
अतिरिक्त तहसीलदार

指的是相同的项目,但写的不同,所以我必须搜索所有的变体

我之前没有Python或openpyxl背景,因此到目前为止我得到的是:

import openpyxl
wb = openpyxl.load_workbook(r'C:/Users/Anas/Downloads/rcmspy.xlsx')

#active worksheet data
ws = wb.active

def wordfinder(searchString):
    for i in range(1, ws.max_row + 1):
        for j in range(1, ws.max_column + 1):
            if searchString == ws.cell(i,j).value:
                print("found")
                print(ws.cell(i,j))


wordfinder("अपर तहसीलदार")
它没有显示任何错误,但也不打印任何内容。 excel工作表如下所示:

我不确定,但我想提出以下建议:

variants = {'alpha','alfa','elfa'}
data = []
rowCount = 0
for row in ws.values:
    //each row is an array of cells
    if rowCount == 0:
        //header row
        data.append(row)
    elif row[2] in variants:
        data.append(row)
    rowCount += 1

wsNew = wb.create_sheet('Variations')
for line in data:
    wsNew.append(line)

wb.save('newWorkbook.xlsx')