擅长:python、mysql、java
<p>参见<a href="http://timgolden.me.uk/python/win32_how_do_i/start-a-new-com-instance.html" rel="noreferrer">"Starting a new instance of a COM application" by Tim Golden</a>,也引用了<a href="http://www.thalesians.com/finance/index.php/Knowledge_Base/Python/General#Starting_a_new_instance_of_a_COM_application" rel="noreferrer">here</a>,它给出了使用的提示</p>
<pre><code>xl_app = DispatchEx("Excel.Application")
</code></pre>
<p>而不是</p>
^{pr2}$
<p>开始一个单独的过程。所以你应该能够做到:</p>
<pre><code>xl_app_1 = DispatchEx("Excel.Application")
xl_app_2 = DispatchEx("Excel.Application")
xl_app_3 = DispatchEx("Excel.Application")
</code></pre>
<p><strong>请注意</strong>完成后,要关闭应用程序,我发现必须执行以下操作:</p>
<pre><code>xl_app.Quit()
xl_app = None
</code></pre>
<p>我发现进程直到<code>xl_app = None</code>才会关闭,也就是说,Python COM对象的引用计数为零。在</p>
<p><strong>注意</strong>我还有一个问题:当我的Python程序正在运行时,如果我在资源管理器中双击一个Excel文件(至少在Win2k上),它最终会在Python启动的现有Excel进程中打开该文件(它正在隐藏运行),这会中断Python程序。我还没有找到解决办法。在</p>