我必须从大约600个.xls文件中更新同一工作表的1个特定单元格值。使用xlwings
库,我可以替换工作表上单元格的值并保存1个工作簿。现在,我需要使用代码来捕获所有600个.xls文件,并运行相同的replace函数来更新单元格值。
使用xlwings
,我能够非常简单地替换字符串值:
import xlwings as xw
wb = xw.Book('Files/firstexcel.xls')
sht1 = wb.sheets['Voucher']
sht1.range('N5').value = sht1.range('N5').value.replace('phone numbers: phonenumber1 phonenumber2, phonenumber3, phonoenumber4', 'phone number: newnumberX')
sht1.range('N5').value
此打印:
phone number: newnumberX
通过使用glob,我能够将文件拉到以.xls结尾的目录中,并且我希望能够使用forloop和xlwings写入每个文件中。
import os
import glob
import xlwings as xw
os.chdir(r'Files/firstexcel.xls')
for FileList in glob.glob('*.xls'):
for file in FileList:
wb = xw.Book(file)
sht1 = wb.sheets['Voucher']
sht1.range('N5').value = sht1.range('N5').value.replace('phone numbers: phonenumber1 phonenumber2, phonenumber3, phonoenumber4', 'phone number: newnumberX')
sht1.range('N5').value
wb.save()
我收到此错误:
File "<ipython-input-36-ff41afc16cc1>", line 13
wb.save()
^
IndentationError: unexpected indent
我期望循环将那些文件拉入列表(FileList),并从Filelist中拉出每个文件,打开其工作簿和工作表,然后使用.replace函数进行修改。但是我收到了缩进错误。这很简单,也许有人可以帮助我清除代码,以便更新文件?谢谢! :-)