作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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。有人知道会发生什么吗?或者我还能尝试什么?感谢您的帮助。
最佳答案
我认为问题在于参数只是位置(只是猜测),因为 SAP GUI 自动化不支持参数名称。 Filename
和 Password
之间有 3 个参数,因此您对它们进行了正确编号,但我猜 SAP GUI 自动化 Controller 不会那样看。
我复制了你的问题并让它按如下方式工作:
CALL METHOD OF workbook 'OPEN' = document
EXPORTING
#1 = '<filename>'
#2 = 0 "UpdateLinks
#3 = 0 "ReadOnly
#4 = 1 "Format
#5 = '<password>'.
这里我明确地传递了参数UpdateLinks
、ReadOnly
和Format
。
我首先在 VBA 中对其进行了测试。看来 Format
(#4) 必须设置为 true。我不知道那是做什么的。
请记住像我在这里所做的那样将文档句柄设置为此调用的返回值,否则您将没有对它的引用!
关于ole - ABAP OLE - 打开 excel 受密码保护的工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164930/
我是一名优秀的程序员,十分优秀!