ABAP OLE -打开excel密码保护工作簿



我正在尝试使用SAP ABAP OLE OBJECT打开密码保护的excel文件,如下所示:

DATA: lt_excel_line(4096) OCCURS 10 WITH HEADER LINE.
DATA: app       TYPE ole2_object,
      workbook  TYPE ole2_object,
      worksheet TYPE ole2_object.
CREATE OBJECT app 'EXCEL.APPLICATION'.
SET PROPERTY OF app 'VISIBLE' = 0.
CALL METHOD OF app 'WORKBOOKS' = workbook.
CALL METHOD OF workbook 'OPEN'
  EXPORTING
  #1 = '<filename>'
  #5 = '<password>'.           

文件名和密码绝对正确,下面的VBA代码按要求打开文件,没有问题:

Dim wb1 As Workbook
Set wb1 = Workbooks.Open Filename:="<filename>", Password:="<password>")

但是ABAP代码总是返回sy- subc = 2。有人知道会发生什么吗?或者我还能尝试什么?感谢您的帮助。

我认为问题在于参数只是位置(只是猜测),因为SAP GUI自动化不支持参数名称。在FilenamePassword之间有3个参数,所以你对它们进行了正确的编号,但我猜SAP GUI自动化控制器不这样看。

我复制了你的问题,并使其工作如下:

CALL METHOD OF workbook 'OPEN' = document
  EXPORTING
  #1 = '<filename>'
  #2 = 0              "UpdateLinks
  #3 = 0              "ReadOnly
  #4 = 1              "Format
  #5 = '<password>'.

这里我显式地传递参数UpdateLinks, ReadOnlyFormat

我首先在VBA中测试了它。似乎Format(#4)必须设置为true。我不知道那是干什么用的。

记住像我在这里所做的那样将文档句柄设置为这个调用的返回值,否则你就没有对它的引用!

最新更新