无法使我的代码在glob循环中工作?

时间:2019-03-25 17:24:51

标签: excel replace glob xlwings

我必须从大约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函数进行修改。但是我收到了缩进错误。这很简单,也许有人可以帮助我清除代码,以便更新文件?谢谢! :-)

0 个答案:

没有答案