Как обойти «Предоставить доступ» при использовании XlwingsPython

Программы на Python
Ответить
Anonymous
 Как обойти «Предоставить доступ» при использовании Xlwings

Сообщение Anonymous »

Я нахожусь в процессе переноса некоторых сценариев автоматизации Excel на Python для работы на MacOS (ранее они запускались в Windows и использовали библиотеку pywin32 для «обновления» файла Excel — цель этого заключалась в том, чтобы убедиться, что все формулы были вычислены перед использованием pandas для чтения файла Excel во фрейм данных).
Я столкнулся с проблемой: когда я пытаюсь открыть файл Excel с помощью xlwings, я получаю всплывающее окно с запросом «Предоставить доступ», как показано на изображении ниже:
Изображение

Я пытался убедиться, что Excel и Python имеют полный доступ к диску, я пробовал изменить настройки безопасности Excel, чтобы разрешить кому-либо чтение/запись, но, похоже, ничего не помогает (кроме нажатия «Предоставить доступ», но этот скрипт будет анализировать множество файлов Excel, и обработка этих всплывающих окон вручную невозможна).
Вот код, который запускает всплывающее окно:
try:
import xlwings as xw # type: ignore

with xw.App(visible=False) as app:
try:
app.display_alerts = False
app.screen_updating = False
except Exception:
pass

# HERE IS WHERE THE GRANT ACCESS POPUP IS TRIGGERED
wb = app.books.open(file_path, update_links=False)
try:
app.calculate()
except Exception:
pass
wb.save()
wb.close()
logging.info("Excel formulas refreshed via xlwings")
return
except Exception as e:
logging.info(f"xlwings refresh unavailable or failed: {e}")


Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-xlwings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»