sas libname mysql_[转载]SAS 通过libname将dataset输出至excel时可能遇到的问题

1. 变量label无法正常输出?

解决途径:

增加(dblabel=yes)。

libname xls excel "E:example.xls";

data xls.sheet1 (dblabel=yes);

set test;

run;

libname xls clear;

2. format无效?

解决途径:

第一步,做一份excel模板,将每列数据的格式配置好;

第二步,使用x命令,复制模板。

x 'copy "E:template.xls" "E:output to excel file by libname.xls" & exit';

第三步,将数据输出至"E:output to excel file by libname.xls"中的指定位置。

3. 输出至指定位置?

解决途径:

第一步,打开目标excel,打开“名称管理器”,建立名称为“test_in_xls_1”的变量,并配置该变量定义的区域。保存并退出;

第二步,使用如下代码输出。

libname xls excel "E:example.xls";

proc sql;

drop table xls.test_in_xls_1;

quit;

data xls.test_in_xls_1 (dblabel=yes);

set test;

run;

libname xls clear;

4. sheet1与'sheet1$'n的区别?

data xls.'sheet1$'n; * 指向excel的sheet1 ;

data xls.sheet1;    * 指向excel的名称管理器中名为sheet1的变量定义的区域 ;

5. 要输出的数据行数超过65535行?

解决途径:

使用宏,分块输出。

%macro xls_output_macro(sor_tab);

%let flag = %sysfunc(open(&sor_tab,is));

%if &flag. eq 0 %then %do;

%put '数据集不存在';

%end;

%else %do;

%let close = %sysfunc(close(&flag.));

data _null_;

set &sor_tab. nobs=n;

call symput('tot_page', ceil(n/65000));

stop;

run;

libname xls excel "E:input_or_output_filetext.xls";

%do ii = 1 %to &tot_page.;

%let start_obs = %eval_r((&ii.-1)*65000+1);

%let end_obs = %eval_r(&ii.*65000);

data xls.page_&ii. (dblabel=yes);

set &sor_tab.(firstobs=&start_obs. obs=&end_obs.);

run;

%end;

libname xls clear;

%end;

%mend;

*example: %xls_output_macro(sor_tab = test) ;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值