SAS中文论坛
标题:
请教如何从EXCEL里读取多个表?
[打印本页]
作者:
shiyiming
时间:
2007-8-14 10:24
标题:
请教如何从EXCEL里读取多个表?
一般读取一个表的格式如下:
PROC IMPORT OUT= win.LJY061
DATAFILE= "F:\SAS程序\LJ-Y06.xls"
DBMS=EXCEL2000 REPLACE;
RANGE="sheet1$";
GETNAMES=YES;
我想连续读取SHEET2,SHEET3,SHEET4,因为它们的数据格式是一样的,读取是没有问题,该怎么做呢?请指教!
作者:
shiyiming
时间:
2007-8-14 14:31
标题:
Re: 请教如何从EXCEL里读取多个表?
把输入文件和输出文件名改一下就行了.
作者:
shiyiming
时间:
2007-8-14 14:55
标题:
Re: 请教如何从EXCEL里读取多个表?
我是没有办法,数据量大,只能分到4个表里!
作者:
shiyiming
时间:
2007-8-14 21:58
标题:
to winkon
最简单最爽的方法是:libname myxls 'c:\temp\sales.xls';
好像在SAS Programming I: Essentials就有介绍的,你可以找这本SAS培训教程来看看。
作者:
shiyiming
时间:
2007-8-17 11:08
标题:
Re: 请教如何从EXCEL里读取多个表?
PROC IMPORT OUT= win.LJY061
DATAFILE= "F:\SAS程序\LJ-Y06.xls"
DBMS=EXCEL2000 REPLACE;
RANGE="sheet[color=#FF0000:f6601]2[/color:f6601]$";
GETNAMES=YES;
作者:
shiyiming
时间:
2007-8-30 11:47
标题:
Re: 请教如何从EXCEL里读取多个表?
我是希望一次性读取ECXEL里的多个表到一个数据集里,上一楼的做法只是读取了sheet2
作者:
shiyiming
时间:
2007-8-30 17:03
标题:
to winkon
写一个宏,就可以了,如
%macro rdata;
%do i=1 %to 4;
PROC IMPORT OUT= win.LJY06&i.
DATAFILE= "F:\SAS程序\LJ-Y06.xls"
DBMS=EXCEL2000 REPLACE;
RANGE="sheet&i.$";
GETNAMES=YES;
%end;
%mend rdata;
作者:
shiyiming
时间:
2007-9-7 09:51
标题:
Re: 请教如何从EXCEL里读取多个表?
%let dir=F:\SAS程序\;
%macro ReadXls (inf);
/*libname excellib excel "&dir.\&inf"; /* STEP 1 */
proc sql noprint; /* STEP 2 */
create table sheetname as
select tranwrd(memname, "''", "'") as sheetname
from sashelp.vstabvw
where libname="EXCELLIB";
select count(DISTINCT sheetname) into:cnt_sht
from sheetname;
select DISTINCT sheetname into :sheet1-:sheet%left(&cnt_sht)
from sheetname;
quit;
libname excellib clear; /* STEP 3 */
%do i=1 %to &cnt_sht;
proc import datafile="&dir.\&inf" /* STEP 4 */
out=sheet&i replace;
sheet="&&sheet&i";
getnames=yes;
mixed=yes;
run;
proc append base=master data=sheet&i force; /* STEP 5 */
run;
%end;
%mend ReadXls;
%ReadXls (data.xls)
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2