现状: 一个文件夹中有多个Excel文件,需要导入的只有每个excle的一张sheet ,有一份excle中有登记每份excle的文件名及批次。
需求: 希望能够批量读入多个excel 文件生成一个数据集,且根据登记表作标记(如数据来自excle1,则在数据集中有个flag为1表示数据来自excle1)。最好就是能实现我只需要登记表格,然后按单击运行SAS就可以生成一个table。
          求解~~
我之前在论坛上发现以下代码:
这个代码可以实现批量读入,但是那个表格名称需要自己一个个键入,比较繁琐。还有就是生成的是多个数据集的?
%macro ss/parmbuff;
%let i=1;
%let dsn=%scan(&syspbuff,&i);
%put &dsn;
%do %while(&dsn ne);
PROC IMPORT OUT=WORK.a&i
            DATAFILE= "D:\&dsn..xls" 
            DBMS=EXCEL REPLACE;
     SHEET="sheet1"; 
     GETNAMES=yes;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;
%let i=%eval(&i+1);
%let dsn=%scan(&syspbuff,&i);
%end;
%mend ss;
options nomlogic nomprint nosymbolgen;
%ss(数据1,数据2,数据3,数据4);