SAS EG Export Excel с пропуском - PullRequest
       12

SAS EG Export Excel с пропуском

0 голосов
/ 20 декабря 2018

Как я могу защитить свой файл 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 ]

0 голосов
/ 20 декабря 2018

Если у вас нет DDE, маловероятно, что код будет работать и для вас.

Последняя строка,

x "cscript ""&vbscript""";

Это команда для вашей операционной системы.Часто, если DDE отключен, этот тип функциональности также отключен.Вы можете проверить это, изучив опцию XCMD.

proc options option=xcmd;
run;

Если XCMD включен, вы увидите:

XCMD Включает команду X в SAS.

Вы можете изменить эту настройку только при запуске и иногда также должны быть администратором.

0 голосов
/ 20 декабря 2018

Похоже, ваш код создает для вас файл c:\convert.vbs, а затем запускает его.Вам просто нужно удалить звездочки, чтобы это был правильный путь к файлу.

...