К сожалению, я ничего не знаю о Python, но если он работает через COM, Excel не является приложением для одного экземпляра, поэтому вы должны иметь возможность создавать столько экземпляров Excel, сколько позволяет память.
Используя C #, вы можете создать несколько экземпляров приложения Excel с помощью:
Excel.Application xlApp1 = new Excel.Application();
Excel.Application xlApp2 = new Excel.Application();
Excel.Application xlApp3 = new Excel.Application();
Используя позднюю привязку в C #, вы можете использовать:
object objXL1 = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
object objXL2 = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
object objXL3 = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
Если вы используете VB.NET, VB6 или VBA, вы можете использовать CreateObject следующим образом:
Dim objXL1 As Object = CreateObject("Excel.Application")
Dim objXL2 As Object = CreateObject("Excel.Application")
Dim objXL3 As Object = CreateObject("Excel.Application")
К сожалению, в Python я понятия не имею. Но если нет каких-то ограничений для Python (что я не могу представить?), То я думаю, что это очень выполнимо.
Тем не менее, идея иметь несколько экземпляров Excel, выступающих в качестве какого-либо сервера для других операций, звучит довольно странно ... Я бы осторожно проверил, что вы делаете, особенно в отношении того, сколько экземпляров вы можете открыть сразу, не исчерпав памяти, и что произойдет с вызывающей программой, если Excel по какой-либо причине зависнет.