SAS实现读入excel工作薄的所有表

懂得老铁可以仔细看看,这是个实用的小程序,可以将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);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值