Suchen und ersetzen Sie Strings in Excel (.xlsx) mit Python

Ich versuche, eine Reihe von Zeichenfolgen in einem XLSX-Blatt (~ 70.000 Zeilen, 38 Spalten) zu ersetzen. Ich habe eine Liste der zu durchsuchenden und zu ersetzenden Zeichenfolgen in einer Datei, die wie folgt formatiert ist: -

bird produk - bird product
pig - pork
ayam - chicken
...
kuda - horse

Das zu suchende Wort befindet sich links und das Ersetzungswort rechts ("Vogelprodukt" suchen und durch "Vogelprodukt" ersetzen. Mein XLSX-Blatt sieht ungefähr so aus: -

name     type of animal     ID
ali      pig                3483
abu      kuda               3940
ahmad    bird produk        0399
...
ahchong  pig                2311

Ich suche nach der schnellsten Lösung dafür, da die Liste ungefähr 200 zu durchsuchende Wörter enthält und die XLSX-Datei ziemlich groß ist. Ich muss dafür Python verwenden, bin aber offen für andere schnellere Lösungen.

Bearbeiten: - Blatt Beispiel hinzugefügt

Edit2: - habe einige Python-Codes ausprobiert, um die Zellen zu lesen, brauchte ziemlich viel Zeit zum Lesen. Irgendwelche Hinweise?

from xlrd import open_workbook
wb = open_workbook('test.xlsx')

for s in wb.sheets():
    print ('Sheet:',s.name)
    for row in range(s.nrows):
        values = []
        for col in range(s.ncols):
            print(s.cell(row,col).value)

Vielen Dank

Edit3: - Ich habe es endlich herausgefunden. Sowohl VBA-Modul- als auch Python-Codes funktionieren. Ich habe stattdessen auf .csv zurückgegriffen, um die Dinge zu vereinfachen. Vielen Dank! Hier ist meine Version des Python-Codes: -

import csv

###### our dictionary with our key:values. ######
reps = {
    'JUALAN (PRODUK SHJ)' : 'SALE( PRODUCT)',
    'PAMERAN' : 'EXHIBITION',
    'PEMBIAKAN' : 'BREEDING',
    'UNGGAS' : 'POULTRY'}


def replace_all(text, dic):
    for i, j in reps.items():
        text = text.replace(i, j)
    return text

with open('test.csv','r') as f:
    text=f.read()
    text=replace_all(text,reps)

with open('file2.csv','w') as w:
    w.write(text)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage