Попытка открыть Excel, используя код python - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь открыть Excel, используя python коды на windows (python версия 3.6.10)

Я использовал коды по ссылке Запуск макроса Excel через Python?

import win32com.client as wincl

excel_macro = wincl.DispatchEx("Excel.application")
excel_path = os.path.expanduser("Valuation.xlsm")
workbook = excel_macro.Workbooks.Open(Filename = excel_path, ReadOnly =1)

но excel не открывается вообще, и я тоже не получаю никаких ошибок!

, если, однако, я запускаю остальную часть кода чтобы запустить макрос vba, он работает нормально (но файл все еще не открывается)

excel_macro.Application.Run("Macro1")
excel_macro.Application.Quit()
del excel_macro

Вопрос в том, как мне просто открыть файл excel, используя python?

Ответы [ 3 ]

0 голосов
/ 30 апреля 2020

Действительно простой способ открыть файл Excel, сохраняя структуру, используя pandas

import pandas as pd
df = pd.read_excel(excel_path)
0 голосов
/ 30 апреля 2020

Просто сделайте приложение Excel видимым. Если для этого свойства Application.Visible не задано значение True, приложение будет работать в фоновом режиме и не вызывать Quit. И, конечно же, при любой интеграции API обязательно добавьте try/except:

import win32com.client as wincl

excel_path = os.path.expanduser("Valuation.xlsm")

try:
    excel_app = wincl.DispatchEx("Excel.application")
    workbook = excel_app.Workbooks.Open(Filename = excel_path, ReadOnly =1)

    # RUN PROCESSING
    excel_app.Run("Macro1")

    # LAUNCH EXCEL VISIBLY TO SCREEN
    excel_app.Visible = True

except Exception as e:
    print(e)

finally:
    workbook = None; excel_app = None
    del workbook; del excel_app
0 голосов
/ 30 апреля 2020

import os os.system («запустить EXCEL.EXE dummyfile.xlsx»)

...