楼主: yunnandlg
687 0

[学习分享] SAS 数据导出的宏程 [推广有奖]

版主

但问耕耘,莫问收获

已卖:3032份资源

院士

5%

还不是VIP/贵宾

-

威望
0
论坛币
279497 个
通用积分
649.6475
学术水平
1667 点
热心指数
1686 点
信用等级
1650 点
经验
192322 点
帖子
1938
精华
0
在线时间
2782 小时
注册时间
2010-8-28
最后登录
2026-1-7

楼主
yunnandlg 在职认证  学生认证  发表于 2022-4-20 18:15:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
/*数据导出的宏程序*/
/*将某个逻辑库下的所有数据集输出成EXCEL*/
/*libname---逻辑库的名称*/
/*outfile---文件地址*/
/*method----"one"(输出成一个文件不同sheet)、"more"(输出成一个数据集一个文件)*/
/*filename--文件名称(method为"one"的情况下)*/
/*type-----xls或xlsx*/


%macro out_excel(libname,outfile,method,filename,type);
        %let libname=%upcase(&libname.);
        proc sql noprint;  
                select memname,count(memname)
                into :memlist
                separated by '\',:memnum  from dictionary.tables  where libname="&libname";
        quit;
        %do i=1 %to &memnum.;
                %let name&i.=%scan(&memlist.,&i,\);
        %end;
        %do i=1 %to &memnum.;  
                %if &method.="one" %then %do;   
                        proc export data=&libname..&&name&i..
                        outfile="&outfile.&filename..&type."
                        dbms=excel replace label;   
                        run;  
                %end;  
                %else %if &method.="more" %then %do;   
                        proc export data=&libname..&&name&i..
                        outfile="&outfile.\&&name&i...&type."
                        dbms=excel replace label;   
                        run;  
                %end;
        %end;
%mend out_excel;


/*%out_excel(work,C:\Users\Administrator\Desktop\2022SASfile,"more",20220420,xls);*/

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Dictionary filename separate proc sql libname

Cause morning rolls around and it's another day of sun.
清晨不久就会来到,又是阳光明媚的一天。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 20:04