懂得老铁可以仔细看看,这是个实用的小程序,可以将excel中的所有表导入SAS。求打赏。
%macro sheetnames(xlsxfile=);
filename _WRKBOOK ZIP "&xlsxfile" member='xl/workbook.xml';
filename _XMLFIL "%sysfunc(pathname(WORK))\workbook.xml";
data _null_;
infile _WRKBOOK recfm=n ;
file _XMLFIL recfm=n;
input char $char1. @@;
put char $char1. @@;
run;
filename _SXLEMAP "%sysfunc(pathname(WORK))\xmlmap.map";
libname _XMLFIL xmlv2 automap=replace xmlmap=_SXLEMAP access=READONLY;
data sheetnames;
set _xmlfil.sheet;
run;
data _null_;
set sheetnames nobs=t;
retain i 1;
call symput("sheet_number",t);
%if i<=t %then %do;
put i=;
call symput("SHEET"||left(i),sheet_name);
%end;
i=i+1;
run;
%put &sheet_number;
%put &&sheet3;
%do k=1 %to &sheet_number;
proc import datafile="&xlsxfile"
dbms='xlsx'
out=&&sheet&k
replace;
GETNAMES=NO;
sheet=&&SHEET&k;
run;
%end;
%mend;
%sheetnames(xlsxfile=C:\Users\33584\Desktop\123.xlsx);