【发布时间】:2015-09-15 17:47:00
【问题描述】:
我创建了一个存储过程,但我想将输出导出到 Excel。我常用的导出语句在存储过程中不起作用。
%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;
有没有办法让它在存储过程中工作?
【问题讨论】:
-
你说它不起作用是什么意思?你在日志中得到错误吗?您的目标是让存储过程将 excel 文件返回给用户(什么客户端正在调用存储过程?)还是只是编写 excel 文件而不实际返回它?
-
这个过程是在 web 上的 sas 门户上运行的。所以它将html输出到屏幕上。我也想让存储过程发送到excel。
-
所以当用户从门户运行存储过程时,您希望他们获得一个文件下载对话框,以便他们可以保存 excel 文件?
-
是的,这正是我想要的
-
建议您使用当前的 STP 代码更新您的问题。或者更确切地说,使用 %STPbegin 等将 sashelp.class 导出到 excel 的简化版本。 .如果它正在工作(创建一个 excel 文件并将其写入服务器上的 /mypath 目录),将结果发送到 _webout 应该不需要太多更改(并设置适当的 html 标头)
标签: sas