SAP Analysis from Excel



我需要做一个脚本,将自动打开Excel与COM设置- SAP分析从Excel。我正在学习语言,所以我在Github/Stackoverflow上找不到解决方案。它始于一行简单的代码,但最终我找到了下面的解决方案。但是当我加载Excel时,分析插件没有在文件中打开。但是,如果在没有脚本的情况下打开Excel文件,则会出现加载项。

import win32com.client as win32
from pathlib import Path
sap_aof_excel_file = Path.cwd().joinpath(r"C:UsersalexandrovnDesktopmoMO2022.xlsm")
bwclient = "CODE"
bwuser = "LOGIN"
bwpassword = "PASS"

excel_instance = win32.gencache.EnsureDispatch('Excel.Application')
excel_instance.Visible = True
excel_instance.DisplayAlerts = False
workbook_sap = excel_instance.Workbooks.Open(sap_aof_excel_file, False, False)
for addin in excel_instance.Application.COMAddIns:
if addin.progID == 'SapExcelAddIn':
if addin.Connect == False:
addin.Connect = True
elif addin.Connect == True:
addin.Connect = False
addin.Connect = True
lResult = excel_instance.Application.Run("SAPLogon", "DS_1", bwclient, bwuser, bwpassword)
lResult = excel_instance.Application.Run("SAPExecuteCommand", "RefreshData", "DS_1")
workbook_sap.Save
workbook_sap.Close()
excel_instance.DisplayAlerts = True
excel_instance.Application.Quit()
excel_instance = None
workbook_sap = None

但是当您加载Excel时,Analysis插件不会在文件中打开。但是,如果在没有脚本的情况下打开Excel文件,则会出现外接程序。下面是出现的错误:

C:UsersalexandrovnAnaconda3python.exe C:/Users/alexandrovn/Desktop/mo/test.py
Traceback (most recent call last):
File "C:UsersalexandrovnDesktopmotest.py", line 30, in <module>
addin.Connect = True
File "C:UsersalexandrovnAnaconda3libsite-packageswin32comclientdynamic.py", line 549, in __setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
pywintypes.com_error: (-2147352567, 'Error.', (0, 'Microsoft.VisualStudio.Tools.Applications.Hosting', 'Failed to install the add-on.', None, 0, -2146233088), None)
Process finished with exit code 1

解释错误是什么,以及如何启动Excel与这个插件?可能有访问问题(通过公司网络工作,在PC上没有管理员权限)

根据'SAP'

当通过自动化启动Excel时,Excel不会自动加载加载项(您的Python脚本将使用/automation和-embedding参数启动Excel),因此您必须手动启用加载项,您应该能够通过在脚本中添加以下行来实现:

xl.COMAddIns("SAPExcelAddIn").Connect = True

我不认为代码会保留COM外接程序。最好接受管理员的帮助,并在AO中启用插件

最新更新