2013-04-24 1 views
0

Итак, я хочу открыть защищенный паролем файл excel, предлагающий пользователю ввести пароль, но я хочу проверить, действительно ли файл требует пароль, прежде чем я попрошу пользователя ,ABAP OLE - проверка наличия защищенного OLE-объекта

Мой нынешний подход - это и работает.

CREATE OBJECT app 'EXCEL.APPLICATION'. 
CALL METHOD OF app 'WORKBOOKS' = workbook. 
CALL METHOD OF workbook 'OPEN' 
    EXPORTING 
    #1 = arch    "filename 
    #2 = 0     "Update links 
    #3 = 0     "ReadOnly 
    #4 = 1     "Format 
    #5 = gv_password.  "password 

IF sy-subrc NE 0. 

    CALL METHOD OF app 'QUIT'. 
    FREE OBJECT app. FREE OBJECT workbook. 
    CLEAR: app, workbook. 
    CREATE OBJECT app 'EXCEL.APPLICATION'. 

    gv_password = <user_entered_password> 

    CALL METHOD OF app 'WORKBOOKS' = workbook. 

    CALL METHOD OF workbook 'OPEN' 
    EXPORTING 
    #1 = arch    "filename 
    #2 = 0     "Update links 
    #3 = 0     "ReadOnly 
    #4 = 1     "Format 
    #5 = gv_password.  "password 

ENDIF. 

Это в основном пытается открыть файл excel с использованием пустого пароля, и если это не удается, пользователь запрашивает. Однако это не очень быстрое или элегантное решение. Есть ли способ лучше? Возможно, проверяя свойство непосредственно перед тем, как открыть его? Благодаря

ответ

2

Согласно следующей информации, вы не можете сказать, если файл Excel защищен паролем перед его открытием: http://www.mrexcel.com/archive/General/2130.html

В этой дискуссии, они в основном предполагает, что вы уже делаете. Однако последний плакат предполагает, что передача пароля в файл, не защищенный паролем, не имеет никакого эффекта, поэтому вы всегда можете предварительно передать пароль в качестве альтернативы (в зависимости от логики вашего приложения).

+0

Спасибо - не видел, что – db579

 Смежные вопросы

  • Нет связанных вопросов^_^