Я пытаюсь просто написать в электронную таблицу и сохранить ее. Далее в коде электронная таблица перемещается с помощью Shutil.move, поэтому файл необходимо закрыть, когда он достигнет этой точки, иначе Shutil не сможет удалить старый файл. Однако вызов wb.close() на самом деле не закрывает книгу и выдает ошибку доступа при попытке удалить файл позже.
Вот метод для записи, сохранения и сохранения. закройте файл:
def savetocell(r,col,val,file,sheet):
from openpyxl import load_workbook
book = load_workbook(file)
page = book[sheet]
page.cell(row = r,column=col+1,value=val)
book.save(file)
book.close()
Я занимался этой проблемой некоторое время и пробовал использовать режимы только чтения и записи, переключаясь на pandas и xlwings (я бы предпочел придерживаться openpyxl для упрощения форматирования с помощью остальную часть библиотеки) и почти все остальные трюки, которые я видел в Интернете (пожалуйста, порекомендуйте что-нибудь, третий раз - прелесть!). Несмотря на это, файл все равно не закроется. Проблема, похоже, заключается в том, что в книге отсутствует архив атрибутов после изучения документации openpyxl, но я действительно не уверен, как мне это изменить. Заранее спасибо!
def close(self):
"""
Close workbook file if open. Only affects read-only and write-only modes.
"""
if hasattr(self, '_archive'):
self._archive.close()
Подробнее здесь: https://stackoverflow.com/questions/786 ... ot-working