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