如何将多个.xls文件导入SAS?

时间:2013-10-09 17:19:36

标签: sas

我有一个包含许多.xls文件的文件夹。该文件的名称可以是随机的。具体数字未知。如何只知道文件夹的目录,如何将这些数据集导入SAS?我必须迭代...我用Java做过这个...我很好奇SAS可以这样做吗?

1 个答案:

答案 0 :(得分:1)

一旦你获得了文件夹中的excel文件列表(使用上面建议的技术),你可以把它放到一个宏变量中,然后在一个宏中循环它们,将它们一个一个地分配给一个库:

%DO i=1 %TO %SYSFUNC(COUNTW(&list_of_files));
   LIBNAME xlibr EXCEL "&your_folder\%scan(&list_of_files,&i)";

   DATA imported_file_&i;
      SET xlibr.'Sheet1$'n;
   RUN;

%END;

如果每个文件中的名称和页数可能不同,那么您需要再添加一个嵌套循环来遍历每个文件的所有表格。像这样:

%DO i=1 %TO %SYSFUNC(COUNTW(&list_of_files));
   LIBNAME xlibr EXCEL "&your_folder\%scan(&list_of_files,&i)";

   PROC SQL noprint;
     SELECT memname into :sheets separated by ' '
     FROM sashelp.vtable
     WHERE libname="XLIBR";
   QUIT;

   %DO j=1 %TO %SYSFUNC(COUNTW(&sheets));   
      DATA imported_file_&i&j;
         SET xlibr."%scan(&sheets,&j)$"n;
      RUN;
   %END;
%END;