2015-09-15 5 views
0

Я создал сохраненный процесс, но я хочу экспортировать вывод в Excel. Моя обычная инструкция экспорта не работает в сохраненном процессе.экспорт sas сохраненный выход процесса

%let _ODSDEST=none; 
%STPBEGIN(); 
data x; 
    set sashelp.class; 
run; 

proc export data=x outfile = "//my documents/sp_test.xlsx" dbms=xlsx replace;  
    sheet="table1"; 
run; 
* Begin EG generated code (do not edit this line); 
;*';*";*/;quit; 
%STPEND; 

Есть ли способ заставить это работать в сохраненном процессе?

+0

Что вы имеете в виду, когда говорите, что это не работает? Вы получили ошибки в журнале? Ваша цель - сохранить сохраненный процесс для файла excel для пользователя (какой клиент вызывает хранимый процесс?) Или просто написать файл excel без его фактического возврата? – Quentin

+0

Этот процесс выполняется на портале sas в Интернете. Таким образом, он выводит html на экран. Я также хотел бы, чтобы сохраненный процесс отправил его в excel. – user601828

+0

Итак, когда пользователь запускает хранимый процесс с портала, вы хотите, чтобы они получили диалоговое окно загрузки файла, чтобы они могли сохранить файл excel? – Quentin

ответ

0

был проверен с помощью вашей орфографии proc exportd и outfile = 'mypath/my documents/myoutpt.xlsx' dbms = xlsx или outfile = 'mypath/my documents/myoutpt.xls' dbms = xls ?? U также может попробовать с ODS.

1

Один из способов вернуть сохраненный процесс в файл excel (фактически в этом случае это xml-файл, который отлично сохранится) - использовать ODS для вывода меток.excelxp (xml).

Когда вы это сделаете, вы можете использовать stpsrv_header для изменения заголовка HTML. Первый оператор говорит браузеру открыть файл с помощью excel, второй - имя файла. Я считаю, что для этой модификации заголовка для работы хранящегося процесса необходимо предоставить результаты потоковой передачи, а не результаты пакета. Но я могу ошибаться.

Когда я бегу ниже, я получаю диалоговое окно загрузки файла из браузера, что позволяет мне открыть или сохранить файл. Я запускаюсь из Хранимого веб-приложения, но должен работать нормально, когда вызывается из портала доставки информации.

%let _odsdest=tagsets.excelxp; 
%let rc=%sysfunc(stpsrv_header(Content-type,application/vnd.ms-excel)); 
%let rc=%sysfunc(stpsrv_header(Content-disposition,attachment%str(;) filename=MyExcelFile.xls)); 

%stpbegin() 
proc print data=sashelp.shoes (obs=&obs); 
run; 
%stpend() 
Смежные вопросы