Сохраняйте файлы Word как DOCX, используя SAS DDE - PullRequest
0 голосов
/ 28 декабря 2018

Я использую 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 голосов
/ 28 декабря 2018

Переписать бит сохранения без опции форматирования:

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

Alos, параметры формата (на случай, если кому-то интересно):

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

Единственный способчтобы получить .docx, это поместить его в путь к файлу и не указывать формат

...