楼主: Imasasor
7053 24

[问答] 如果批量将excel 2007变成excel 2000,如何导入一个excel的多个sheet [推广有奖]

11
Imasasor 发表于 2013-2-26 10:29:03
ziyenano 发表于 2013-2-26 10:27
是DOS命令报错,还是格式转了之后,文件报错?
都没报错,但格式没转变啊
options noxwait xsync;
x "ren C:\Documents and Settings\chao\桌面\待整理信息\Order\*.xlsx *xls";
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

12
ziyenano 发表于 2013-2-26 10:30:43
Imasasor 发表于 2013-2-26 10:29
都没报错,但格式没转变啊
options noxwait xsync;
x "ren C:\Documents and Settings\chao\桌面\待整理 ...
你直接在DOS下运行一下试试

13
ziyenano 发表于 2013-2-26 10:33:34
Imasasor 发表于 2013-2-26 10:29
都没报错,但格式没转变啊
options noxwait xsync;
x "ren C:\Documents and Settings\chao\桌面\待整理 ...
ren D:\test\*.xlsx *xls少写了一个点
ren D:\test\*.xlsx *.xls

14
Imasasor 发表于 2013-2-26 10:42:46
ziyenano 发表于 2013-2-26 10:33
ren D:\test\*.xlsx *xls少写了一个点
ren D:\test\*.xlsx *.xls
奇怪了,在sas用X调用不ok,但在dos中可以,但发现这个命令只是重命名,并没有转换格式,转换格式看来还是得vba,无奈又不会,书到用时方恨少啊
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

15
ziyenano 发表于 2013-2-26 10:48:48
Imasasor 发表于 2013-2-26 10:42
奇怪了,在sas用X调用不ok,但在dos中可以,但发现这个命令只是重命名,并没有转换格式,转换格式看来还是 ...
重命名变为xls之后,无法导入SAS?

16
webgu 发表于 2013-2-26 12:07:44
ziyenano 发表于 2013-2-26 10:48
重命名变为xls之后,无法导入SAS?
XLS和xlsx的格式是不同,直接重命名是不行的。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

17
webgu 发表于 2013-2-26 12:08:28
Imasasor 发表于 2013-2-26 09:16
版主英明,我的意思就是这样,你看我贴的一段davil2000的程序,就是控制office软件进行打开,复制和粘贴, ...
呵呵,那个我也看不懂。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

18
ziyenano 发表于 2013-2-26 12:47:29
webgu 发表于 2013-2-26 12:07
XLS和xlsx的格式是不同,直接重命名是不行的。
原来是这样,我的版本xlsx也能导入,所以重命名成xls也可以导入~

19
webgu 发表于 2013-2-26 12:56:37
ziyenano 发表于 2013-2-26 12:47
原来是这样,我的版本xlsx也能导入,所以重命名成xls也可以导入~
呵呵,扩展名只是关联了你双击时打开此类文件的应用程序。文件本身的内容,格式并没有变化。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

20
新人2012 发表于 2013-2-26 15:45:04
尊敬的版主
您看下面的代码是不是您所需要的东西?从去年写过的一段代码摘录过来的(oop i for excel files; loop j for sheets in an excel)


options noxwait;

%macro ReadXls (dir=);
%sysexec cd &dir; %sysexec dir *.xls /b/o:n > flist.txt;  
data _indexfile;
length filen $200;
infile "&dir./flist.txt";
input filen $;
run;
proc sql noprint;
select count(filen) into :cntfile from _indexfile;
%if &cntfile>=1 %then %do;
select filen into :filen1-:filen%left(&cntfile)
from _indexfile;
%end;
quit;

%do i=1 %to &cntfile;   

libname myxls&i odbc   
        required="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
dbq=&dir.\&&filen&i;
readonly=false"
database=sybase;

proc sql noprint;
create table sheetname&i as
select tranwrd(memname, "''", "'") as sheetname
from sashelp.vstabvw
where libname="MYXLS&i";
select count(DISTINCT sheetname) into :cnt_sht
from sheetname&i;
select DISTINCT sheetname into :sheet1 - :sheet%left(&cnt_sht)
from sheetname&i;

libname mytemp "E:\mytemp";
   %do j=1 %to &cnt_sht;   
   data mytemp.temp&i._&j;
   set myxls&i.."Page &j$"n;
   run;
   %end;

%end;  
%mend Readxls;

%Readxls(dir=E:\myprg\datasets\myxls);


已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 80 + 80 + 4 + 4 + 1 补偿
webgu + 60 + 10 + 1 + 1 + 1 观点有启发

总评分: 经验 + 140  论坛币 + 90  学术水平 + 5  热心指数 + 5  信用等级 + 2   查看全部评分

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

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