楼主: 美人百货
840 1

[学习分享] SAS批量导出excel问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

本科生

27%

还不是VIP/贵宾

-

威望
0
论坛币
123 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
280 点
帖子
14
精华
0
在线时间
157 小时
注册时间
2016-12-24
最后登录
2024-9-24

楼主
美人百货 发表于 2020-1-13 10:33:34 |AI写论文
30论坛币
先贴自己的代码,sheet的命名总是出现问题
%macro test(epath = ,xlsx_name = ,opath = );
libname a167 "&epath.";
proc sql noprint;
        select count(*) into:_n
        from dictionary.tables
        where libname = %upcase("a167");
        select memname into:_memname1-:_memname%left(&_n.)
        from dictionary.tables
        where libname = %upcase("a167");
        select memlabel into:_labname1-:_labname%left(&_n.)
        from dictionary.tables
        where libname = %upcase("a167");
quit;

%do i=1 %to &_n.;
        %put NOTE:&&_memname&i.. = &&_labname&i..;
        proc export data = a167.&&_memname&i..
                outfile = "&opath.\&xlsx_name..xlsx"
                dbms = xlsx replace label;
                sheet = "&&_memname&i.._&&_labname&i..";  这里改成sheet = "&&_labname&i.."导出的excel就会打不开???
还有就是取消提交的语句是什么意思呢,这个宏我第一次运行,可以得到想要的excel,但是删除掉excel后再次运行就出问题了,需要取消提交的语句后再次运行就可以正常得到excel。
        run;
%end;

%mend;

%test(epath = C:\Users\user\Desktop\Mylib\TEST1,
                xlsx_name = test1,
                opath = C:\Users\user\Desktop\Mylib\TEST1);

沙发
美人百货 发表于 2020-1-13 11:00:08
更新下:发现是一个sheet的name有问题
proc export data = data1
        outfile = "C:\Users\user\Desktop\Mylib\TEST1\111.xlsx"
        dbms = xlsx replace label;
        sheet = "用药史()抗肿瘤治疗除外";
run;
有括号就导不出来,去掉括号就可以导出来,为什么呢

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-17 16:47