我想指定新名称,因此我使用getnames=no
属性:
data mylib.test;
infile "C:\Users\test.xlsx" ;
input var1 $ Opened_Date mmddyy8. salary dollar9.2;
DBMS=EXCEL ;
range="Sheet5$";
getnames=no;
mixed=no;
scantext=yes;
usedate=yes;
scantime=yes;
datarow=3;
run;
但这不会导入任何东西
PS 以下代码getnames=yes
正常工作。这意味着excel文件没有问题。但我不想使用yes
我需要getnames=no
PROC IMPORT OUT= WORK.TEST
DATAFILE= "C:\Userstest.xlsx"
DBMS=EXCEL REPLACE;
RANGE="Sheet5$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
答案 0 :(得分:2)
PROC IMPORT OUT= WORK.TEST
DATAFILE= "C:\Userstest.xlsx"
DBMS=EXCEL REPLACE;
RANGE="Sheet5$";
GETNAMES=NO;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
在这种情况下,数据步骤没有帮助。您无法以这种方式导入excel文件(实际上)。
然后,您可以创建一个数据步骤,并可以根据PROC IMPORT最初分配的通用名称重命名。
看起来像数据步骤方法的替代方法是libname
访问。
libname myexcel excel "c:\Usertest.xlsx" getnames=no scantext=yes mixed=no usedate=yes scantime=yes;
然后您可以访问
这样的文件data test;
set myexcel,'Sheet5$'n;
rename f1=var1 f2=opened_date (...more...);
run;
我倾向于使用PROC IMPORT,因为它对其他人来说更容易理解,但两者在工作方式上是相同的(PROC IMPORT基本上为你创建了这个libname。)