You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python关闭SAP导出的特定Excel工作簿或阻止用户输入?

问题与解决方案:关闭SAP导出的特定Excel工作簿

问题描述

  • 开发了带基础UI的Python程序,支持用户选择SAP语言和机器序列号,点击「运行」后执行SAP脚本导出对应机器的物料清单(BOM)
  • 导出的BOM会自动在Excel中打开,但后续需要读取该文件计算面积,因此需自动关闭这个由SAP打开的Excel工作簿
  • 当前采用模拟按下alt+f4的方式关闭,但仅在用户未进行键鼠操作时有效
  • 存在两个疑问:
    1. 能否通过Python关闭Excel中特定工作簿?尝试过xlsxwriter,但仅能关闭该库创建的工作簿;使用os库关闭EXCEL.EXE不可行,因为工作环境中员工常保持Excel开启,不能关闭所有工作簿
    2. 若无法关闭特定工作簿,能否在程序运行时阻止用户输入以避免执行错误?

已解决方案(2024年2月2日更新)

使用win32com库连接Excel应用程序,直接定位并关闭目标工作簿,代码片段如下:

Excel = win32com.client.Dispatch("Excel.Application")
wb = Excel.Workbooks.Open(file_complete_path_pintura)
wb.Close(False)
time.sleep(1)
  • 实现逻辑:通过win32com获取当前运行的Excel实例,打开目标工作簿的完整路径后,调用Close(False)方法(参数False表示不保存工作簿的更改),即可精准关闭该特定工作簿,之后就能正常读取导出的BOM数据。

内容的提问来源于stack exchange,提问作者GabrielKarloh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:00:11