SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 3208|回复: 8
打印 上一主题 下一主题

更改外部文件名

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2013-2-6 15:55:24 | 只看该作者

更改外部文件名

更改外部文件如excel中的sheet工作表名....有哪些实现方法?请各位高手们指点一二,谢谢了!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2013-2-17 14:29:03 | 只看该作者

Re: 更改外部文件名

这么久了都没的回应个的,自己顶一个呢....比如说需要外部excel文件中的工作表sheet1和sheet2分别重命名为one和two。
顶顶,不然就沉下去了..... <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2013-2-17 22:35:05 | 只看该作者

Re: 更改外部文件名

sas 处理的都是输入sas 后的数据,如果你一定要那样做,一个变通的方式是重新生成xls,把sheet命名为你需要的名字。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2013-2-18 09:47:57 | 只看该作者

Re: 更改外部文件名

[quote=&quot;MerlinZHOU&quot;:2mud2zlt]sas 处理的都是输入sas 后的数据,如果你一定要那样做,一个变通的方式是重新生成xls,把sheet命名为你需要的名字。[/quote:2mud2zlt]
不能重新生成的,必须是原来的那个EXCEL上边重命名才行哦!能不能调用C之类的语言来修改哎,这个我就不会了,不知道大侠你们能不能方便给个类似的代码...
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2013-2-19 07:23:23 | 只看该作者

Re: 更改外部文件名

[code:3m3svmdu]
options noxwait noxsync;
data _null_;
   rc = system('start excel');
   rc = sleep(2);
run;

filename myxls DDE 'EXCEL|System' notab;

data _null_;
   file myxls;
   put '&#91;close()&#93;';
   put '&#91;open(&quot;d&#58;\cc&#46;xlsx&quot;)&#93;';
   put '&#91;workbook&#46;name(&quot;Sheet1&quot;, &quot;Uno&quot;)&#93;';
   put '&#91;workbook&#46;name(&quot;Sheet2&quot;, &quot;Dos&quot;)&#93;';
   put '&#91;workbook&#46;name(&quot;Sheet3&quot;, &quot;Tres&quot;)&#93;';
   put '&#91;file&#46;close(true)&#93;';
   put '&#91;quit()&#93;';
run;
filename myxls clear;
[/code:3m3svmdu]
单用SAS的话可能就DDE一条路了,因为Jet/ACE database engine不支持重命名。但DDE连接不100%稳定。

在可以直接引用Microsoft Data Access Components的编程语言里重命名Excel workbook很容易,经过包装之后再给SAS调用,也是一条路子,你自己走吧。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2013-2-23 17:24:06 | 只看该作者

Re: 更改外部文件名

哎!不好意思哈!才刚刚上班,之前都没上来看哈...遇到一个问题,文件名不是固定的,所以需要被宏解析的..
所以我把下边这句:
   '[open(&quot;d:\cc.xlsx&quot;)]';
替换成
   %nrbquote( '[open(&quot;d:\&amp;file..xlsx&quot;)]');
运行不能通过,还请徐大侠指导下....就文件名需要被解析的问题
怎样才能在DDE下正常运行呢....
还有一个问题就是,假如包装好了的,SAS是如何调用的呢?几乎没试过,大侠可不可以也指点下,非常谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2013-2-28 16:34:44 | 只看该作者

Re: 更改外部文件名

没人来了呢....
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2013-3-4 00:52:33 | 只看该作者

Re: 更改外部文件名

&quot;[open(&quot;&quot;d:\&amp;file..xlsx&quot;&quot;)]&quot;

DOUBLE QUOTE TO RESOLVE MACRO SYMBOLS.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2013-3-4 12:54:30 | 只看该作者

Re: 更改外部文件名

多谢徐大侠了!嘿嘿.....
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-2 19:09 , Processed in 0.070184 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表