楼主: shareland
3876 3

excel批量导入出错,请高手指点 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
23 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2015-1-13
最后登录
2015-1-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
D:\temp\目录下有 上百个 excel 文件,想利用宏读入各个文件的内容到一个表中,excel的格式都一样

%macro daoru(name) ;                                
        PROC IMPORT OUT= aa                        
            DATAFILE= "D:\temp\&name..xls"            
                        DBMS=excel2010 REPLACE;
                        getnames=yes;
        RUN;
        PROC APPEND BASE=www DATA=aa force  ;
        RUN ;
%mend daoru ;

data temp;
        infile "D:\temp\all.TXT" delimiter = ')' MISSOVER DSD lrecl=32767 ;;
        input str : $100.;
                str2 = trim(str) || ')' ;
                Call Symputx(str3,str2) ;
                call execute('%daoru('||scan(str2,1,')')||');') ;
run;


但是提示 错str=116.431,39.880343,长青园(餐饮 str2=116.431,39.880343,长青园(餐饮) str3=. _ERROR_=1 _N_=6
str2的值没有传递到 宏中,请高手指点下

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL 批量导入 高手指点 xcel exce excel

沙发
sushe1527 发表于 2015-1-13 13:56:35 |只看作者 |坛友微信交流群
  1. *指定数据文件所在的目录;
  2. %let path=D:\temp\;
  3. *指定输出数据集前缀;
  4. %let OutPrefix=ff;

  5. x "dir &path.*.xls /b > &path.fname.txt";

  6. %macro importxls(filename,ith);
  7. proc import datafile="&path.&filename" out=&OutPrefix.&ith dbms=excel replace;
  8. run;
  9. data all;
  10.    set %if &ith ne 1 %then all; &OutPrefix.&ith;
  11. run;
  12. %mend;
  13. data _null_;
  14. infile "&path.fname.txt";
  15. input filename & $100.;
  16. call execute('%importxls(' || trim(filename) || ',' || _n_ || ')');
  17. run;
复制代码

使用道具

藤椅
shareland 发表于 2015-1-13 14:41:13 |只看作者 |坛友微信交流群
多谢多谢,不过运行后,提示:

743  data _null_;
744  infile "&path.fname.txt";
745  input filename & $100.;
746  call execute('%importxls(' || trim(filename) || ',' || _n_ || ')');
747  run;

NOTE: 数值已转换为字符值,位置:(行:列)。
      746:56
NOTE: INFILE "D:\temp\fname.txt" 是:
      文件名=D:\temp\fname.txt,
      RECFM=V,LRECL=256,文件大小(字节)=249,
      上次修改时间=2015年07月13日 14时30分50秒,
      创建时间=2015年07月13日 14时30分50秒

ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
NOTE: 从 INFILE "D:\temp\fname.txt" 中读取了 6 条记录。
      最小记录长度是 34。

使用道具

板凳
sushe1527 发表于 2015-1-13 15:39:19 |只看作者 |坛友微信交流群
excel是中文名? 你的sas版本支持中文变量名吧?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 02:42