SAS EG Export Excel с пропуском
Как я могу защитить мой файл Excel с помощью пароля, потому что в SAS EG не поддерживается DDE.
Я использую это, но у меня нет convert.vbs
Так где я могу получить это?
/***********************************************/
/* Create a test worksheet to password protect */
/***********************************************/
ods tagsets.excelxp file="c:\temp.xml";
proc print data=sashelp.class;
run;
ods tagsets.excelxp close;
/*****************************************************************/
/* Create and excecute a script file using the input XML file */
/* and the converted XLSX file. The value 51 is needed for XLSX. */
/* Use the value of 1 for XLS files in the SaveAs command. */
/*****************************************************************/
%let XMLfile = c:\temp.xml;
%let ExcelFile = c:\temp.xlsx;
%let VBscript = ***c:\convert.vbs***;
%let password=test;
data _null_;
file "&vbscript" lrecl=200;
put 'Dim xlApp, xlWkb, SourceFile, TargetFile';
put 'Set xlApp = CreateObject("excel.application")';
put 'SourceFile="' "&XMLfile" '"';
put 'Set xlWkb = xlApp.Workbooks.Open(SourceFile)';
put 'TargetFile="' "&ExcelFile" '"';
put 'xlApp.DisplayAlerts=false';
put "xlWkb.SaveAs TargetFile, 51,""&password""";
put 'xlApp.DisplayAlerts=true';
put 'xlWkb.close';
run;
options noxwait noxsync;
x "cscript ""&vbscript""";
2 ответа
Похоже, что ваш код создает файл c:\convert.vbs
для вас, а затем запускает его. Вам просто нужно удалить звездочки, чтобы это был правильный путь к файлу.
Если у вас нет DDE, маловероятно, что код будет работать и для вас.
Последняя строка,
x "cscript ""&vbscript""";
Это команда для вашей операционной системы. Часто, если DDE отключен, этот тип функциональности также отключен. Вы можете проверить это, изучив опцию XCMD.
proc options option=xcmd;
run;
Если XCMD включен, вы увидите:
XCMD Включает команду X в SAS.
Вы можете изменить эту настройку только при запуске, и иногда вам также нужно быть администратором.