ODS EXCELの構文や機能をまとめていきたいと思います。
まずは基本構文から。
ODS EXCEL FILE = "出力するエクセルファイルのフルパス"; ・・・ 出力するプロシジャを記述 ・・・ ODS EXCEL CLOSE; |
例
ods excel file="パスを指定\test.xlsx" ; proc print data=sashelp.cars; run; proc means data=sashelp.cars; var msrp; by make; run; ods excel close; |
- まずprintプロシジャから1表出力されるので1シート作られます。
- meansプロシジャではbyグループごとに表を作成しているので、byグループの数だけシートが作られます。
ods excel file = "パス\test.xlsx" title = "SAS: ODS EXCELの勉強" keywords = "SAS, ODS EXCEL" category = "SAS" comments = "ODS EXCELでプロパティを設定" status = "勉強中" author = "a.matsu"; proc print data=sashelp.cars; run; ods excel close; |
この辺の設定はあんまりしないかもだけど、titleとauthorは設定したいことがあるかもしれない。
注意点
こんにちは。いつも参考にさせていただいています。
返信削除ODSでデータセットの内容をexcel形式で出力・保存するプログラムを作っているのですが、
ods excel close; を記載していてもExcelが正常にcloseしません。
どのような原因が考えられますでしょうか。
もし差し支えなければご教示頂けましたら幸いです。
アボカドさん
削除コメントありがとうございます!
>ods excel close; を記載していてもExcelが正常にcloseしません。
「正常にcloseしない」とは以下の①の意味であっておりますでしょうか?
①Excelに出力できたが、プログラム実行後もExcelが開いたままで終了しない。
②Excelに出力後、開くと「ファイルが破損している」旨のメッセージボックスが表示されてしまい、正しく出力できない。
お返事頂きありがとうございます。
返信削除はい、ご認識のとおり以下①の状況となります。
①Excelに出力できたが、プログラム実行後もExcelが開いたままで終了しない。
アボカドさん、コメントありがとうございます。
削除ご質問いただいた点は、SASの通常の動きと思われます。
というのも、処理の流れとしては「ODS EXCEL」~「ODS EXCEL CLOSE」でExcelファイルを生成、その後、生成したExcelファイルが自動で開きます。
(「ODS EXCEL CLOSE」の後にExcelファイルが開きます)
開かれたファイルは開きっぱなしになります。