楼主: stefaniekenny
5805 5

[求助] [推广有奖]

  • 0关注
  • 0粉丝

本科生

54%

还不是VIP/贵宾

-

威望
0
论坛币
290 个
通用积分
0.1200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1672 点
帖子
99
精华
0
在线时间
79 小时
注册时间
2008-11-3
最后登录
2019-6-13

楼主
stefaniekenny 发表于 2009-4-2 09:38:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

小弟把excel导入到了sas中,但我的excel数据有好多个sheet的,但sas中只有第一页的数据。

这是导入后保存的程序。应该怎么改改,才能显示导入所有的sheet呢?

PROC IMPORT OUT= KENNY.sz800
            DATAFILE= "E:\data transact1\SZ000701-900.xls"
            DBMS=EXCEL REPLACE;
     SHEET="'000701$'";
     GETNAMES=YES;
     MIXED=YES;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;

二维码

扫码加我 拉你入群

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

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

关键词:excel数据 replace import EXCEL sheet excel EXCEL 程序

回帖推荐

2008310148 发表于3楼  查看完整内容

因为楼主的表名是连续的,直接用do循环不可以做么?%macro import;  %do i = 701 %to 900;     PROC IMPORT OUT= KENNY.sz800_&i            DATAFILE= "E:\data transact1\SZ000701-900.xls"             DBMS=EXCEL REPLACE;     SHEET="'000&i$'";  &n ...

ashengyuan 发表于2楼  查看完整内容

你可以写个 macro,循环的把每个sheet存入不同的SAS Data set.假如你的sheet 名字是 A, B, C, D%let sheetnamelist = A/B/C/D;%macro import();%do i = 1 %to 4;  %let name = %scan(&sheetnamelist ,&i,"/");    PROC IMPORT OUT= KENNY.sz800_&name             DATAFILE= "E:\data transact1\SZ000701-900.xls"     ...

本帖被以下文库推荐

沙发
ashengyuan 发表于 2009-4-2 23:30:00

你可以写个 macro,循环的把每个sheet存入不同的SAS Data set.

假如你的sheet 名字是 A, B, C, D

%let sheetnamelist = A/B/C/D;

%macro import();

%do i = 1 %to 4;

  %let name = %scan(&sheetnamelist ,&i,"/");

    PROC IMPORT OUT= KENNY.sz800_&name 
            DATAFILE= "E:\data transact1\SZ000701-900.xls"
            DBMS=EXCEL REPLACE;
     SHEET="'&name$'";
     GETNAMES=YES;
     MIXED=YES;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;

%end;

%mend;

大概的思路就是这样,但程序仍然需要调试以针对具体情况。


已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
2008310148 发表于 2009-4-6 01:04:00

因为楼主的表名是连续的,直接用do循环不可以做么?

%macro import;

  %do i = 701 %to 900;

     PROC IMPORT OUT= KENNY.sz800_&i
            DATAFILE= "E:\data transact1\SZ000701-900.xls"
            DBMS=EXCEL REPLACE;
     SHEET="'000&i$'";
     GETNAMES=YES;
     MIXED=YES;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
     RUN;

  %end;

%mend;

%import;

请楼主自己测试下,建议测试时循环次数选少些,这样看起来方便

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

板凳
stefaniekenny 发表于 2009-4-7 18:02:00

恩,谢谢了楼上两位了。

报纸
wangchan200604 发表于 2009-4-9 13:05:00

    libname xx "E:\data transact1\SZ000701-900.xls" ;

    然后从explorer窗口找到 xx, xx中应该会有所有的数据集吧。

    libname xx clear;*取消数据库xx,确保在相应的物理路径下可以打开SZ000701-900.xls;

    楼主不妨试一下

地板
tigerroot 发表于 2009-4-9 21:24:00
Write another block of "proc import" and read the second sheet into another dataset. then write a block of "data" and merge all datasets if need.

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 21:24