在 SAP GUI 脚本中使用 Python 时使用 getCellValue 时出现 pywintypes.com_error

问题描述 投票:0回答:1

我正在开发一个使用 win32com.client 模块与 SAP GUI 交互的 Python 脚本。我的目标是从 SAP 内的表中检索特定的单元格值。但是,当我尝试使用 getCellValue 方法时遇到错误。以下是回溯:

Traceback (most recent call last):
  File "C:\Users\aaaa\Desktop\test.py", line 69, in <module>
    value = shell.getCellValue(1, "Status do sistema")
  File "<COMObject <unknown>>", line 2, in getCellValue
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'SAP Frontend Server', '', None, 0, -2147024809), None)

这是我的代码的相关部分:

我的代码

id = 'wnd[0]/usr/cntlCUSTOM/shellcont/shell/shellcont/shell'
shell = sap.session.findById(id)

value = shell.getCellValue(1, "Status do sistema")

print(value)

根据 SAP GUI 脚本 API 文档,getCellValue 方法在 VBScript 中具有以下签名:

Public Function GetCellValue( _
   ByVal Row As Long, _
   ByVal Column As String _
) As String

我尝试过的事情

  • 验证:确保在我的系统上启用 SAP GUI 脚本。 ID路径:仔细检查ID路径 (wnd[0]/usr/cntlCUSTOM/shellcont/shell/shellcont/shell) 以确保它 正确指向我想要与之交互的桌子。

  • 列参考:尝试使用列名称(“Status do sistema")和列索引(例如 0、1)来检索值。

  • 测试不同的参数:我还尝试了不同的行 索引和列名来查看问题是否特定于某些 细胞。

我希望 getCellValue 方法返回表中指定单元格的值,然后将其打印到控制台。

  • Python版本:3.11.8

  • SAP GUI 版本:(SAP GUI 版本 770)

  • win32com.client 版本:306

  • 操作系统:Windows 10

问题

当我尝试使用 getCellValue 时,可能是什么原因导致此 pywintypes.com_error ?我引用该列的方式是否有问题,或者 SAP GUI 设置是否存在问题?我将不胜感激有关如何正确检索单元格值的任何指导。

python com win32com sap-gui
1个回答
0
投票

此错误可能因 SAP GUI 脚本的任何误用而发生,并且并非特定于 Python 或 win32com.client 模块。

例如,在您的情况下,您错误地指定了

GetCellValue
的第二个参数,它必须是列名称,而不是列标题:

value = shell.getCellValue(1, "Status do sistema")

如何获取列名在这个answer中有详细介绍。

© www.soinside.com 2019 - 2024. All rights reserved.