Я работаю над инструментом регрессионного тестирования, который будет проверять очень большое количество таблиц Excel. На данный момент я управляю ими через COM из скрипта Python, используя последнюю версию продукта pywin32. К сожалению, COM имеет ряд неприятных недостатков:
Например, малейшее расстройство, похоже, может разорвать соединение с COM-сервером, после разрыва, похоже, нет безопасного способа повторно подключиться к приложению Excel. В объекте COM-приложения нет абсолютно никакой безопасности.
Интерфейс Excel COM не позволяет мне безопасно удаленно управлять двумя отдельными экземплярами приложения Excel, работающими с одним файлом книги, даже если они доступны только для чтения.
Также, когда что-то идет не так, я редко получаю какие-либо полезные сообщения об ошибках ... в лучшем случае я могу, кроме числового кода ошибки или едва полезного сообщения, такого как "Возникло исключение". Почти невозможно понять, почему что-то пошло не так.
Наконец, COM не имеет возможности контролировать некоторые из самых фундаментальных аспектов Excel? Например, нет способа сделать гарантированное закрытие только процесса Excel, к которому подключен COM-клиент. Вы даже не можете использовать COM, чтобы найти PID в Excel.
Так что, если бы я полностью отказался от COM? Есть ли альтернативный способ управления Excel?
Все, что я хочу сделать, это запускать макросы, открывать и закрывать книги, читать и записывать диапазоны ячеек? Возможно, некоторые эксперты .NET знают хитрость или два, которые еще не проникли в сообщество Python? Как насчет офисных хакеров? Может ли быть лучший способ добраться до внутренних помещений Excel, чем COM?