Планировщик заданий win32.gencache.EnsureDispatch (Excel) - PullRequest
1 голос
/ 24 октября 2019

Мой сценарий использует веб-драйвер Chrome для входа в онлайн-базу данных, запроса данных, а затем загружает данные для помещения в кадр данных pandas. Проблема, с которой я столкнулся при написании этого скрипта, заключается в том, что когда данные загружаются из онлайн-базы данных ... они загружаются с расширением XLS, которое повреждено. Чтобы решить эту проблему, я использую следующий код:

    # Locates all files with XLS extension in downloads folder
    downloads = glob.glob(r'C:\Users\gol69206\Downloads\*.xls')

    # Locates the newest XLS document in downloads folder
    queryXLS = max(downloads, key=os.path.getctime)

    # Open Excel
    excel = win32.gencache.EnsureDispatch('Excel.Application')

    # Create new Excel workbook with Query
    wb = excel.Workbooks.Open(queryXLS)

    # SaveQuery with '.xlsx' extension so file is not corrupted and can be read into data frame
    print("Converting query to .XLSX extension")
    excel.DisplayAlerts = False
    wb.SaveAs(queryXLS + "x", FileFormat=51)

    # Close workbook
    wb.Close()

    # Quit Excel
    excel.Application.Quit()

    # Locates all files with XLSX extension in downloads folder
    downloads = glob.glob(r'C:\Users\gol69206\Downloads\*.xlsx')

    # Locates the newest XLSX document in downloads folder
    queryXLSX = max(downloads, key=os.path.getctime)

    # Load 'queryXLSX' into data frame and don't include first row (blank)
    df = pd.read_excel(queryXLSX, skiprows=1)

Когда я запускаю скрипт из консоли python, он работает отлично. Однако сейчас я пытаюсь запускать этот скрипт один раз в день с помощью планировщика заданий Windows. Я полагаю, что поставил задачу правильно, включив функции «запускать ли пользователь вошел в систему или нет», «запустить с наивысшими привилегиями», «разбудить компьютер для запуска этой задачи».

Я считаю, что проблемаэто открытие Excel или, возможно, сохранение нового XLSX. Когда я просматриваю свою папку загрузок, появляется документ XLS, означающий, что он правильно запрашивает онлайн-базу данных при использовании планировщика заданий Windows.

Любая помощь будет принята с благодарностью. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...