楼主: zespri
2854 1

[原创博文] 求助:用SAS写如Word表格 [推广有奖]

  • 0关注
  • 1粉丝

VIP

已卖:1278份资源

讲师

50%

还不是VIP/贵宾

-

威望
0
论坛币
3869 个
通用积分
272.6608
学术水平
7 点
热心指数
9 点
信用等级
8 点
经验
35949 点
帖子
374
精华
0
在线时间
616 小时
注册时间
2006-5-16
最后登录
2025-5-7

楼主
zespri 发表于 2010-4-20 08:30:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想把已有的的结果(在SAS中,比如说sashelp.sas), 写入一个已存在的确word文档中的表格中,有什么办法吗?
谢谢
二维码

扫码加我 拉你入群

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

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

关键词:word表格 word SASHELP WORD文档 Help Word

回帖推荐

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

如果比较懂wordbasic(早期的VBA)的话,可以参考下列代码来实现,非常繁琐,只是有新建表格,但没有插入已存在表格,要实现的话wordbasic的地方可能需要改一下,具体要请教wordbasic高手了。由于表格需要格式设置,因此需要写入wordbasic,让word来执行这段宏。 这类功能一般会使用处理输出比较普遍的动态数据交换引擎(DDE)来实现。 这个比较可控,可以实现打开已有doc文档,对已有表格进行编辑,包括高级的word的编辑功能。不 ...

本帖被以下文库推荐

沙发
yatming 发表于 2010-4-20 21:03:50
如果比较懂wordbasic(早期的VBA)的话,可以参考下列代码来实现,非常繁琐,只是有新建表格,但没有插入已存在表格,要实现的话wordbasic的地方可能需要改一下,具体要请教wordbasic高手了。由于表格需要格式设置,因此需要写入wordbasic,让word来执行这段宏。
这类功能一般会使用处理输出比较普遍的动态数据交换引擎(DDE)来实现。
  1. options noxwait xmin noxsync;

  2. /*启动officeword*/
  3. x '"C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"';
  4. filename wrd dde 'winword|system';

  5. /*设置doc所在目录*/
  6. %let path=_;

  7. /*由于使用之前x命令与SAS并不是串行,而是并发的多线程,因此这里需要sleep,目的等待启动word编辑器*/
  8. data _null_;
  9.     call sleep(1,3);
  10. run;

  11. data _null_;
  12.     file wrd;
  13.     put '[FileNew.Template="Normal.dot"]';
  14.     put '[ChDefaultDir "&path",0]';
  15.     put '[FileSaveAs.Name="test.doc",.Format=0]';
  16. run;

  17. /*构造了需要写入的表格*/
  18. data into_word;
  19.     row=trim("sas")||'09'x||trim(put(today(),yymmdd10.));
  20. run;

  21. /*写入wordbasic*/
  22. data _null_;
  23.     file wrd;
  24.     set into_word;
  25.     ddecmd='[Insert '!!quote(trim(row))!!']';
  26.     put ddecmd;
  27.     put '[EditSelectAll]';
  28.     put '[TextToTable.ConvertFrom="1",
  29.         .NumColumns="2",.NumRows="1",
  30.         .InitialColWidth="Auto",
  31.         .Format="35",.Apply="87"
  32.     ]';
  33.     put '[FileSave]';
  34.     put '[FileClose 2]';
  35.     put '[FileClose 2]';
  36. run;
复制代码
这个比较可控,可以实现打开已有doc文档,对已有表格进行编辑,包括高级的word的编辑功能。不过前提还是需要非常熟悉VBA。
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

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

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