Мне нужно обновить 1 конкретное значение ячейки на том же листе из примерно 600 файлов .xls. Используя библиотеку xlwings
, я смог заменить значения ячейки на листе и сохранить 1 рабочую книгу. Теперь мне нужно использовать код, чтобы получить все 600 моих файлов .xls и запустить ту же функцию замены, чтобы обновить значение ячейки.
используя 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. Но я получил ошибку отступа. Что тривиально, может быть, кто-то может помочь мне очистить мой код, чтобы я мог обновить свои файлы? БЛАГОДАРЮ ВАС! :-)