簡體   English   中英

在 excel 中搜索特定文本(文本模式)並使用 openpyxl 將所有結果行復制到同一工作簿中的另一張工作表

[英]Search specific text(text pattern) in excel and copy all resulting rows to another sheet in same workbook using openpyxl

我有一個帶有多張紙的 excel 文件,sheet3 的第 3 列(包含大約 500 行)包含各種名稱。 我想在第 3 列中搜索特定文本,如果匹配,則將整行與 header 行一起復制到同一 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM