使用SAS DDE将Word文件另存为DOCX

时间:2018-12-28 00:16:07

标签: ms-word sas

我正在使用SAS v9.4

我正在尝试编写一个宏,该宏读取单词模板,进行一些修改,然后将新文档另存为.docx文件。我设法使其能够保存到.doc文件,但是当我更改扩展名时出现以下错误:

  

不兼容的文件类型和文件扩展名

有人知道我如何将文件另存为docx吗? 任何帮助将不胜感激

代码如下:

filename sas2word dde 'winword|system';

 %macro setupWd(outfile);
   options noxsync noxwait xmin;

   /* Open Blank Word Document */
   data _null_; 
     length fid rc start stop time 8;
     fid=fopen('sas2word','s');
     if (fid le 0) then do;
        rc=system('start winword');
        start=datetime();
        stop=start+1;
     do while (fid le 0);
        fid=fopen('sas2word','s');
        time=datetime();
        if (time ge stop) then fid=1;
        end;
     end;
     rc=fclose(fid);
   run;

   /* Save to given location */
   data _null_; 
     file sas2word;
     put '[FileSaveAs.Name="' "&outfile" '",.Format=0]';
   run;
%mend setupWd;

作品:

%setupWd(outfile = M:\SAS\Output\MacroTest.doc)

不工作:

%setupWd(outfile = M:\SAS\Output\MacroTest.docx)

1 个答案:

答案 0 :(得分:2)

不用格式选项重新写入保存位:

data _null_; 
   file sas2word;
   put '[FileSaveAs.Name="' "&outfile" '"]';
run;

Alos,“格式”选项(如果有人想知道的话)是:

Format = 0: .doc
Format = 1: .dot
Format = 2: .txt

获取.docx的唯一方法是将其放在文件路径名中,而不指定格式