如何关闭通过win32在python中打开的Excel实例?
我需要打开Excel工作表,刷新数据透视表,保存并关闭它。然而,每当我使用python打开Excel实例时,无论我多么努力,它都保持打开状态。我还想使用一个已经运行的实例(如果有),如果没有,则创建一个。最后,如果有实例正在运行,只需关闭工作簿,否则关闭Excel 我试过也没用。我也试过,但没有成功 这是代码。它所做的正是它应该做的,然而,Excel进程仍然在后台运行。我甚至可以调用如何关闭通过win32在python中打开的Excel实例?,python,Python,我需要打开Excel工作表,刷新数据透视表,保存并关闭它。然而,每当我使用python打开Excel实例时,无论我多么努力,它都保持打开状态。我还想使用一个已经运行的实例(如果有),如果没有,则创建一个。最后,如果有实例正在运行,只需关闭工作簿,否则关闭Excel 我试过也没用。我也试过,但没有成功 这是代码。它所做的正是它应该做的,然而,Excel进程仍然在后台运行。我甚至可以调用Application.Visible=True,它会再次弹出 import pywintypes import
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()
您的
If
语句应该是While
语句。类似于当大于1时,关闭工作簿,然后退出Excel。(大锤警告!)作为最后手段,您可以通过shell调用子流程并关闭(杀死)Excel。类似于taskkill/f/im Excel.exe
。再说一次,可能是你最后的选择。