全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
2740 3
2016-01-07
如何用SAS中的DOS命令获取指定目录文件夹下的xlsx文件名,并将其导入SAS系统转换成SAS数据集?
二维码

扫码加我 拉你入群

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

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

全部回复
2016-1-7 10:00:52

%let folder=D:\;
%let sysd=%sysfunc(today(),yymmddn8.);

%put &sysd;

options noxwait xsync;

x "dir/s &folder > &folder.dir.txt";

data readfile(drop=datestring);
infile "&folder.dir.txt" firstobs=8 missover;

input @1 date:yymmdd10. time &:time.
     bytes :comma. filename :$200.;
format date yymmdd10. time time. bytes comma18.;
run;

x "erase &folder.dir.txt";

data file1;
set readfile;
length type $12.;
if date ne . and bytes ge 5;
type=scan(filename,-1,".");
if type eq 'xlsx';
type1=scan(filename,1,".");
if find(type1,compress(&sysd))>0;
run;

data file1;
  set file1;
  n=_n_;
run;
proc sql noprint;
   select max(n) into :varno
         from file1;
quit;
%put &varno;

%macro xlsx2sas();
%do i=1 %to &varno;
proc sql noprint;
select filename into :xlsxn
       from file1
                where n=&i
;quit;
%put &xlsxn;
%let route=%sysfunc(cats(&folder,\,&xlsxn));
%put &route;
proc import datafile="&route" out=xlsx&i. dbms=xlsx replace;run;

%end;
%mend;

%xlsx2sas;
二维码

扫码加我 拉你入群

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

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

2016-1-13 09:56:03
liehuodgq 发表于 2016-1-7 10:00
%let folder=D:;
%let sysd=%sysfunc(today(),yymmddn8.);

谢谢分享
二维码

扫码加我 拉你入群

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

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

2017-2-6 12:44:51
顶!d=====( ̄▽ ̄*)b
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群