Не удается определить, открыт ли файл Excel, не предлагая пользователю сохранить файл / отменить - PullRequest
0 голосов
/ 20 июня 2019

Используя Iron Python, мне нужно сначала определить, открыт ли файл Excel, а затем, если он открыт, получить к нему доступ.если его не открыть, откройте его.проблема: в моем операторе try, когда я пытаюсь открыть книгу, если она уже открыта, вместо попытки выполнить попытку, она завершает ее и предлагает пользователю сохранить / отменить открытый файл в excel.Я хочу, чтобы попытка завершилась неудачно, если файл Excel уже открыт, не запрашивая пользователя.

Я использую библиотеку Marshal Interopt для доступа к открытому файлу, и это хорошо работает

UserExcelFile = os.path.join(userdirectory, 'podi.xlsx')    
try:
  workbook = excel.Workbooks.Open(UserExcelFile)
except:
  print "Looks like it was already open"
  return
workbook = excel.ActiveWorkbook
ws = excel.ActiveSheet

Еслифайл уже открыт "workbook = excel.ActiveWorkbook" отлично работает для редактирования уже открытого файла Excel.

1 Ответ

0 голосов
/ 20 июня 2019

Я не думаю, что ваша попытка, кроме оператора, поймает здесь исключение.Строка ниже откроет тот же файл снова, даже если он уже открыт.

workbook = excel.Workbooks.Open(UserExcelFile)

Вам следует самостоятельно проверить, открыт ли файл.Предложения о том, как это можно сделать, можно найти здесь, в стеке: Python: открыть книгу Excel, используя Win32 COM Api

...