<p>我正在尝试替换.xlsx工作表中的一组字符串(大约70k行,38列)。我有一个要在文件中搜索和替换的字符串列表,格式如下:</p>
<pre><code>bird produk - bird product
pig - pork
ayam - chicken
...
kuda - horse
</code></pre>
<p>要搜索的单词在左侧,替换词在右侧(查找“bird produk”,替换为“bird produc”)。我的.xlsx表看起来像这样:</p>
<pre><code>name type of animal ID
ali pig 3483
abu kuda 3940
ahmad bird produk 0399
...
ahchong pig 2311
</code></pre>
<p>我正在寻找最快的解决方案,因为列表中有大约200个单词要搜索,而.xlsx文件非常大。我需要使用Python来实现这一点,但我愿意接受任何其他更快的解决方案。</p>
<p>编辑:-添加图纸示例</p>
<p>Edit2:-尝试了一些python代码来读取单元格,花费了很长时间。有什么线索吗?</p>
<pre><code>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)
</code></pre>
<p>谢谢你!</p>
<p><strong>编辑3:-我终于弄明白了。VBA模块和Python代码都可以工作。我求助于.csv来让事情变得更简单。谢谢您!这是我的Python代码版本:-</strong></p>
<pre><code>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)
</code></pre>