0

フォルダー内のすべての Excel ファイルをインポートする SAS マクロを作成しましたが、機能します。次にやりたいことは、すべてのExcelファイルのprocインポートログまたは結果を単一のpdfに送信することです。私の SAS コードは次のようになります。

%macro readxls (copyfrom=);
---
---
---
%do i=1 %to $count_files;
ods listing close;
ods pdf file='pathname\report_import.pdf';
proc import datafile="&copyfrom.\...." out=copyto.... DBMS=xlsx replace;
getnames=yes; 
run;
ods pdf close;
ods listing;
%end;
%mend readxls;

何らかの理由で、pdf ファイルが生成されません。また、SAS ログには、「注: ODS PDF 出力を DISK 宛先 "pathname\report_import.pdf"、プリンター "PDF" に書き込みます。

4

1 に答える 1

3

ログを ODS 出力先に直接リダイレクトすることはできません。インポート手順には、ODS 宛先に送信される出力はありません。

あなたができることは、PROC PRINTTOを使用してログをテキストファイルにリダイレクトすることです. 次に、PROC DOCUMENT を使用してファイルをインポートし、リプレイ機能を使用して ODS 出力先に書き込みます。

filename pdflog 'pathname\report_import.pdf';
filename tmplog 'pathname\report_import.txt';

proc printto log=tmplog;run;

%macro readxls (copyfrom=);

%do i=1 %to $count_files;
proc import datafile="&copyfrom.\...." out=copyto.... DBMS=xlsx replace;
getnames=yes; 
run;
%end;

%mend readxls;

%readxls(copyfrom=...);

proc printto;run;

proc document name=pdflog(write);
   import textfile=tmplog to logfile;
run; 

ods listing close;

ods pdf file=pdflog notoc;
 replay; 
 run;
ods pdf close;

quit;

ods listing close;
于 2014-05-28T06:28:15.657 に答える