2019年5月22日水曜日

ODS EXCEL入門: EXCELの「ページ設定」の「ヘッダー/フッター」タブの内容を設定する





EXCELの「ページ設定」→「ヘッダー/フッター」タブで、ヘッダーとフッターを設定できるけど、それをODS EXCEL側で設定する方法をご紹介。




今回は以下のオプションについて解説しています。
  • PRINT_HEADER
  • PRINT_FOOTER
  • EMBEDDED_TITLES
  • EMBEDDED_FOOTNOTES
  • EMBED_TITLES_ONCE
  • EMBED_FOOTNOTES_ONCE




ヘッダー/フッターの設定


構文
ODS EXCEL OPTIONS(   
        PRINT_HEADER = "ヘッダーテキスト" | "NONE"
        PRINT_FOOTER = "フッターテキスト" | "NONE"
);

※ "NONE" を指定すると未設定となる。


title;
footnote;

ods excel file="出力するパスを指定\test.xlsx" options(
    flow = "table"
    print_header = "myへっだー"
    print_footer = "myふったー");

    proc report data=sashelp.class;
        define _character_ / style(column)={tagattr='type:String format:@'};
    run;

ods excel close;





ただし、以下のように「TITLEステートメント」や「FOOTNOTEステートメント」が設定されている場合は、そちらがExcelの「ヘッダー/フッター」として優先されます。


title "titleステートメントが優先される";
footnote "footnoteステートメントが優先される";

ods excel file="出力するパスを指定\test2.xlsx" options(
    flow = "table"
    print_header = "myへっだー"

    print_footer = "myふったー");

    proc report data=sashelp.class;
        define _character_ / style(column)={tagattr='type:String format:@'};
    run;

ods excel close;



ちなみに以下の記事で「ヘッダー・フッター」の小技を紹介しているので、余裕があったら参考までに。。
ODS EXCELで「ヘッダー・フッター」の書式を設定する





「TITLEステートメント」と「FOOTNOTEステートメント」の設定いろいろ


ここから、おまけ。

以下オプションで「TITLEステートメント」や「FOOTNOTEステートメント」の値を「ヘッダー/フッター」ではなく、セルに出力することが出来ます。


構文
ODS EXCEL OPTIONS(   
    EMBEDDED_TITLES = "ON" | "OFF"
    EMBEDDED_FOOTNOTES = "ON" | "OFF"
);


title "titleをセルに埋め込む";
footnote "footnoteをセルに埋め込む";

ods excel file="出力するパスを指定\test3.xlsx" options(
    flow = "table"
    sheet_interval = "none"
    embedded_titles = 'on'
    embedded_footnotes = 'on'
    );

    proc report data=sashelp.class;
        define _character_ / style(column)={tagattr='type:String format:@'};
        where age=11;
    run;

    proc report data=sashelp.class;
        define _character_ / style(column)={tagattr='type:String format:@'};
        where age=12;
    run;

ods excel close;


TITLEとFOOTNOTEをセルに出力することが出来ました!
ただし、気になるところが。。

上の例では、REPORTプロシジャを2回実行して2つ表を出力していますが、各表毎にTITLEとFOOTNOTEが表示されちゃってます。。




そこで、以下のオプションを指定すると、TITLEとFOOTNOTEを一番最初と最後だけに出力するようにできます。


構文
ODS EXCEL OPTIONS(   
     EMBED_TITLES_ONCE = "ON" | "OFF"
     EMBED_FOOTNOTES_ONCE = "ON" | "OFF"
);


title "titleをセルに埋め込む";
footnote "footnoteをセルに埋め込む";

ods excel file="出力するパスを指定\test4.xlsx" options(
    flow = "table"
    sheet_interval = "none"
    embedded_titles = 'on'
    embedded_footnotes = 'on'
    embed_titles_once = 'on'
    embed_footnotes_once = 'on'
    );

    proc report data=sashelp.class;
        define _character_ / style(column)={tagattr='type:String format:@'};
        where age=11;
    run;

    proc report data=sashelp.class;
        define _character_ / style(column)={tagattr='type:String format:@'};
        where age=12;
    run;

ods excel close;


こっちの方がスッキリしてていいですね。





ODS EXCEL入門記事一覧


注意点

0 件のコメント:

コメントを投稿