美文网首页SAS编程
通过SAS结合 WORD&EXCEL获取shell的title和

通过SAS结合 WORD&EXCEL获取shell的title和

作者: SASPRO的打工人生活 | 来源:发表于2021-11-25 21:06 被阅读0次

在统计师创建好shell后,之后SAS程序员可能就得把shell上的title和footnote、还有一些shell下的notes复制到EXCEL上,这个过程不仅需要花费大量的时间,而且效率还低。

也许你现在还在痛苦的写着SDTM,但是到后面你就得接触越来越多的CDISC之外的东西,你得了解公司宏是怎么运用的;项目前期准备工作是什么样的等等等等。

然后网上有很多文章介绍了如何自动或者半自动地读取RTF文档,获取shell上的title和footnote,比如通过EXCEL自带的VBA。我看了几篇,然后也尝试去运行了一下,但是要么程序报错,要么读取不正确,乱七八糟的。

然后今天看了一篇文章,虽然到最后也不能达成我们的最终目的---完整的获取shell上的title和footnote,但是也算是拓宽知识面吧。看看就好。

整个过程都是在一个宏里面,截图顺序代表程序顺序:

宏参数in代表你要读取的word文件:具体路径加上文件名

宏参数out代表你要输出的数据集名

宏参数location代表你要输出的excel物理路径

session没看到宏里面有用到(当然,文章没有把全部代码列出)

page应该是shell第几页,但是这样不还是跟手动没多大差别吗?但是我们可以写个循环,说不定有用。

%let rc=%sysfunc(system(start winword)); 

这个是打开word命令,成功运行,这个可以算是一个小技巧。

data _null_;

x=sleep(5);    **5秒后再运行;

 run; 

为什么要等5秒后SAS才运行呢?主要是等word打开吧,要是你word还没打开,就运行下面的DDE,可能就报错了。同理,下面打开excel也是一样的。

之后就是打开DDE,读取word文件,注意Viewheader是获取header(我输出失败,所以我也不知道是哪里的header),如果你想获取脚注还得Viewfooter,感觉好鸡肋啊!

这是文章展示的截图

之后就是关闭word,就跟我们ods rtf之后还得ods rtf close一样,可能是为了节省内存资源吧。

之后打开excel,5秒后运行程序,然后将读取的word内容写入EXCEL;最后输出excel。三步曲。

因为我用的是自己电脑上的SAS,然后提示我EXCEL没有获得这个SAS的授权什么巴拉巴拉的。所以看不到真实效果。这篇文章也只是当给大家乐呵乐呵。

当然,还有其他方法导入shell上的title和footnote,等我成功了在写出来吧。

文章来源:

《Reading Title and Footnote from RTF Output into SAS® utilizing Microsoft® Excel》Ajay Gupta, PPD Inc, Morrisville, NC

相关文章

网友评论

    本文标题:通过SAS结合 WORD&EXCEL获取shell的title和

    本文链接:https://www.haomeiwen.com/subject/aouztrtx.html