首页 > 解决方案 > 如何关闭通过win32在python中打开的Excel实例?

问题描述

我需要打开 Excel 工作表,刷新数据透视表,保存并关闭它。但是,每当我使用 python 打开 Excel 实例时,无论我多么努力,它都会保持打开状态。我还想使用一个已经运行的实例,如果有可用的,如果没有,创建一个。最后,如果有一个实例正在运行,只需关闭工作簿,否则,关闭 Excel。

我试过这个解决方案无济于事。我也试过这个,但没有成功。

这是代码。它完成了应该做的事情,但是 Excel 进程仍然在后台运行。我什至可以打电话Application.Visible = True,它会再次弹出。

import pywintypes
import pythoncom 
from win32com import client

pythoncom.CoInitialize()

try:
    Application = client.GetActiveObject("Excel.Application")
    Application.Visible = True
except pywintypes.com_error:
    Application = client.Dispatch("Excel.Application")
    Application.Visible = False

Workbook = Application.Workbooks.open('file_name.xlsx'))
Workbook.RefreshAll()
Workbook.Save()

if len(Application.Workbooks) == 1: # If there is only one workbook, close Excel
    Application.Quit()
else:
    Workbook.Close()

pythoncom.CoUninitialize()

标签: python

解决方案


推荐阅读