Sas Excel和HTML输出是否可以在同一存储过程中进行?

Sas Excel和HTML输出是否可以在同一存储过程中进行?,sas,Sas,我有一个存储过程,返回一个Excel作为下载(由于大数据,加载时间很长)。这是正确的,但下载后会留下一个空白页。因此,我想把一些HTML文本放在空白页面中,最好先是一个加载图标,然后在下载Excel之后完成一个“完成”的信息。但是,当我在excel输出之后/之前使用ods html时,不是下载excel,而是将excel作为html文本输出,有没有办法在一个过程中同时完成这两个输出 代码示例: /* something like:*/ ods html body=_webout; data

我有一个存储过程,返回一个Excel作为下载(由于大数据,加载时间很长)。这是正确的,但下载后会留下一个空白页。因此,我想把一些HTML文本放在空白页面中,最好先是一个加载图标,然后在下载Excel之后完成一个“完成”的信息。但是,当我在excel输出之后/之前使用ods html时,不是下载excel,而是将excel作为html文本输出,有没有办法在一个过程中同时完成这两个输出

代码示例:

/* something like:*/

ods html body=_webout; 
data _null_;
file _webout;
put '<img src="loading.gif" />';
run;
ods html close;
/*here is the Exceloutput which i use at the moment without htmloutput*/

%let RV=%sysfunc(appsrv_header(Content-type, application/vnd.ms-excel));
%let RV=%sysfunc(appsrv_header(Content-disposition,%str(attachment; filename=myExcel.xls )));


ods tagsets.excelxp file=_webout options(embedded_titles='yes' embedded_footnotes='yes' 
                     sheet_interval='none' sheet_name='Result') ;

 PROC PRINT DATA=AUSDRUCK UNIFORM NOOBS LABEL; 
 OPTIONS DATE NUMBER; 
 TITLE1"myExcel "; 
 VAR var1 var2 var3 var4 var5; 

 RUN; 

ods tagsets.excelxp close;

/*and then something like:*/

ods html body=_webout; 
data _null_;
file _webout;
put 'Excel download finished successfull';
run;
ods html close;
/*类似于:*/
ods html正文=_webout;
数据为空;
文件\u webout;
放‘’;
跑
ods html关闭;
/*下面是我目前使用的Exceloutput,没有htmloutput*/
%让RV=%sysfunc(appsrv_头(内容类型,application/vnd.ms excel));
%让RV=%sysfunc(appsrv_头(内容处置,%str(附件;文件名=myExcel.xls));
ods tagsets.excelxp文件=\u webout选项(嵌入的\u titles='yes'嵌入的\u footnotes='yes'
工作表_interval='none'工作表_name='Result');
PROC打印数据=AUSDRUCK统一NOOBS标签;
选项日期编号;
标题1“myExcel”;
VAR var1 var2 var3 var4 var5;
跑
ods tagsets.excelxp关闭;
/*然后是这样的:*/
ods html正文=_webout;
数据为空;
文件\u webout;
放入“Excel下载完成成功”;
跑
ods html关闭;

我一直无法做到这一点。期待答案!远离SAS,因此无法发布真实答案。Niko Markovic建议采用这种方法。简言之,STP将excel文件写入磁盘,然后将html文件发送到webout。html文件是一个iframe,其中的内容是一个URL,该URL调用一个STP,该STP使用适当的头将文件流式传输到_weboutt。我使用这种方法来发送“请稍候”消息。Nik的示例使用递归STP,但我使用了两个STP,因为我制作了一个实用程序“stream file”STP,其中prompt是要流化的文件。嗨,昆汀,谢谢你的建议。目前,我已经在一个框架中工作,第一个进程(一些用于参数和信息文本的html webout)已经在提交后写入加载图标。然后下一个进程在同一个框架中写入,并用结果覆盖html和pdf输出的加载图标,这很好,但我也得到了一些Excel进程,希望避免第三个进程,但如果没有人有更好的主意,我想我必须按照您建议的方式解决它。