По какой-то причине следующий код работает нормально, но предупреждение о перезаписи файла продолжает появляться, хотя я установил xl.EnableEvents = False, код не будет выполняться дальше, пока я не нажму вручную всплывающее окно перезаписи файла.Кто-нибудь знает, как это исправить?
Код открывает файл Excel, который содержит строку, которая позволяет файлу Excel подключаться к API Bloomberg. Я использовал это решение здесь , чтобы заставить это работать.Пока файл открыт в течение достаточного времени, данные извлекаются в файл, а затем сохраняются и завершаются.Для получения данных требуется ~ 35 секунд, и в таблице панд начинает отображаться запрошенное мной содержимое.
Проблема в всплывающих окнах!- Мне нужно увидеть, когда строки «# N / A Requesting Data ...» больше нет в файле, и я не вижу способа сделать это без периодического сохранения файла.Было бы неплохо решение, позволяющее мне динамически просматривать содержимое файла без необходимости сохранения.
Решение здесь не помогло мне остановить всплывающие окна, я мог бы, вероятно, сделатькаждый раз новый файл и затем удаляйте их все в конце, но это кажется немного неуклюжим.Этот вопрос расширяет эту проблему здесь , если кто-то хочет увидеть код и проблему в более полном контексте.
WB = 'C:/path/to/my/file.xlsx'
location = "EGLL"
def run_VWA(WB, location):
"""open the excel file, allow enough time to pull the data, then close and save"""
bb = 'C:/blp/API/Office Tools/BloombergUI.xla'
xl=win32com.client.DispatchEx("Excel.Application")
xl.Workbooks.Open(bb)
xl.AddIns("Bloomberg Excel Tools").Installed = True
wb = xl.Workbooks.Open(Filename=WB) #opens workbook in readonly mode.
xl.Visible = False
xl.EnableEvents = False
xl.DisplayAlerts = False
total=0
colstring='#N/A Requesting Data...'
while total < 40:
wb.Save()
df = df_from_excel(WB, location)
if colstring not in df:
break
time.sleep(3)
total+=3
wb.Close(SaveChanges=1)
xl.DisplayAlerts = True
xl.Quit()
#Cleanup the com reference.
del xl
return
Любая помощь с этим очень ценится, у меня очень ограниченный опытс библиотекой win32com.