Один из способов вернуть сохраненный процесс в файл 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()
Что вы имеете в виду, когда говорите, что это не работает? Вы получили ошибки в журнале? Ваша цель - сохранить сохраненный процесс для файла excel для пользователя (какой клиент вызывает хранимый процесс?) Или просто написать файл excel без его фактического возврата? – Quentin
Этот процесс выполняется на портале sas в Интернете. Таким образом, он выводит html на экран. Я также хотел бы, чтобы сохраненный процесс отправил его в excel. – user601828
Итак, когда пользователь запускает хранимый процесс с портала, вы хотите, чтобы они получили диалоговое окно загрузки файла, чтобы они могли сохранить файл excel? – Quentin