楼主: playmore
14698 24

[问答] 请问如何将多个数据集导出至同一Excel文件的多个Sheet? [推广有奖]

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16309 个
通用积分
7.1397
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1331 小时
注册时间
2007-1-11
最后登录
2023-12-15

初级学术勋章 初级热心勋章 中级热心勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题
有一个proc可以解决的方法吗?
是不是需要用ODS?
谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:sheet EXCEL xcel exce SHE Excel 如何

本帖被以下文库推荐

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛
沙发
boe 发表于 2013-5-22 15:37:46 |只看作者 |坛友微信交流群
仅供参考。。。

Unnamed QQ Screenshot20120602153048.png (57.19 KB)

Unnamed QQ Screenshot20120602153048.png

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 1 + 1 + 1 ods results off +1
webgu + 40 + 40 + 2 + 2 + 2 精彩帖子

总评分: 经验 + 40  论坛币 + 40  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

Gorgeous girl , I love !

使用道具

藤椅
可~乐 发表于 2013-5-22 15:40:04 |只看作者 |坛友微信交流群
  1. libname test excel "d:\test.xls";

  2. data test.class1;
  3.         set sashelp.class ;
  4. run;

  5. data test.class2;
  6.         set sashelp.class;
  7. run;

  8. data test.汉字n;
  9.         set sashelp.class;
  10. run;

  11. libname test clear;
复制代码
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 4 + 4 + 4 观点很有启发
webgu + 60 + 60 excel引擎是个好方法
playmore + 1 + 1 + 1 观点有启发

总评分: 经验 + 60  论坛币 + 65  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

板凳
playmore 发表于 2013-5-22 15:49:22 |只看作者 |坛友微信交流群
可~乐 发表于 2013-5-22 15:40
甚好,甚好
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

报纸
slimdell 发表于 2013-5-22 17:10:44 |只看作者 |坛友微信交流群
如果数据集都在一个文件夹里
%macro Exporting;
%let OUT=d:\OUT\;  /**dataset folder**/
%let ExtOut=sas7bdat; /**data file as sas7bdat**/
libname sasout "&OUT";
libname Excel excel "d:\test.xls"; /**output excel file name**/
    %let RC=%sysfunc(filename(FilRF,&Out));                                                                                                
    %let Did=%sysfunc(dopen(&FilRF));      
%let MemCnt=%sysfunc(dnum(&Did));   
    %do i = 1 %to &MemCnt;                                                                                                               
         %let Name=%qscan(%qsysfunc(dread(&Did,&i)),-1,.);
        %let EXPname=%qscan(%qsysfunc(dread(&Did,&i)),1,.);
           %if %qupcase(%qsysfunc(dread(&Did,&i))) ne %qupcase(&Name) %then %do;                                                                                                      
            %if (%qupcase(&Name) = %qupcase(&ExtOut)) %then %do;      
               data Excel.&EXPname;
                    set sasout.&EXPname;
                run;
            %end;                                                                              
        %end;   
    %end;                                                                                                                                                                                                                                                      
   %let RC=%sysfunc(dclose(&Did));        
    libname Excel;
%mend Exporting;
%Exporting;
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
playmore + 1 + 1 + 1 观点有启发
webgu + 40 + 40 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 40  论坛币 + 40  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

知乎专栏/微信公号同名:煮酒烹茶读书

使用道具

地板
didizhang 发表于 2013-5-22 19:19:05 |只看作者 |坛友微信交流群
proc export data=xxx dbms=excel replace
                outfile="e:\xx\xx\abc.xls(x)";
                sheet="sheetname";
run;

使用道具

7
playmore 发表于 2013-5-23 08:41:32 |只看作者 |坛友微信交流群
slimdell 发表于 2013-5-22 17:10
如果数据集都在一个文件夹里
%macro Exporting;
%let OUT=d:\OUT\;  /**dataset folder**/
你的宏也不错,可以批量转换
只是局限在已保存至指定文件夹的dataset吧
如果是work逻辑库里的就不行了吧?
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

8
可~乐 发表于 2013-5-23 09:42:49 |只看作者 |坛友微信交流群
  1. %macro test(lib);
  2. options noxwait;
  3. x "del d:\test.xls";

  4. data test1;
  5.         set sashelp.class;
  6. run;

  7. data test2;
  8.         set sashelp.class;
  9. run;

  10. proc sql noprint;
  11.         select count(memname) into:_nobs from sashelp.vtable where libname="%upcase(&lib)";
  12.         select memname into:_memname separated by " " from sashelp.vtable where libname="%upcase(&lib)";
  13. quit;

  14. libname test excel "d:\test.xls";

  15. %do i=1 %to &_nobs.;
  16.         %let tablename=%scan(&_memname.,&i.);
  17.                 data test.&tablename.;
  18.                         set &tablename.;
  19.                 run;

  20. %end;

  21. libname test clear;

  22. %mend;

  23. %test(work);
复制代码
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
webgu + 60 + 60 + 3 + 3 + 3 精彩帖子
boe + 1 + 1 + 1 学习了
playmore + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 60  论坛币 + 60  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

9
slimdell 发表于 2013-5-23 11:14:14 |只看作者 |坛友微信交流群
playmore 发表于 2013-5-23 08:41
你的宏也不错,可以批量转换
只是局限在已保存至指定文件夹的dataset吧
如果是work逻辑库里的就不行了吧 ...
对的,我们会把需要转换的文件保存到指定文件夹
知乎专栏/微信公号同名:煮酒烹茶读书

使用道具

10
playmore 发表于 2013-5-23 12:42:20 |只看作者 |坛友微信交流群
可~乐 发表于 2013-5-23 09:42
各位乡亲都太热心了
你这个宏也不错
可以做个主题贴了
这样可以帮到更多人
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 18:47