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

时间:2013-04-23 08:49:17

标签: ole abap

我正在尝试使用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-subrc = 2.任何人都知道会发生什么?或者我还能尝试什么?感谢任何帮助。

1 个答案:

答案 0 :(得分: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>'.

这里我明确传递参数UpdateLinksReadOnlyFormat

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

请记住将文档句柄设置为此调用的返回值,否则您没有引用它!