SAS ODS Excel Statementのオプション一覧(日本語)
先日、SASユーザ総会2019に参加してきました。
なんだか例年よりもシステマチックな方向に向かっているような。
これはSASがオープンになりつつあり、様々な技術との連携ができる
ようになってきたからかもしれません。
さて、その中で面白かったセッションを1つ。
SAS忘備録でおなじみ(?)の松沢さんによるODS Excel入門です。
いろいろなことができそうなので帰ってから調べてみると、ユーザーズガイドは英語版(第5版で、日本語版はまだ第3版!)のみだったので検証がてら翻訳してまとめてみました。(とっとと翻訳してくれないかな!)
細かい情報は以下のExcelからどうぞ(更新日:2019-09-24)
なお、Suboptionで指定できるExcelのヘッダー、フッター書式を使用するとExcelファイルが壊れてしまう件についてはM6で修正されており、ユーザがわざわざ&を&にエスケープする必要はなくなっているようです。(拡張子xlsxのExcelファイルは内部的にxmlで管理しており、xmlでは&等をエスケープ処理する必要があるものの、正しくエスケープ処理されていなかったのが原因だと思われます。逆に、"とすると、Excelでは"と認識されます。)
また、M5までの場合、&Uを指定しておけばなぜか他の&までもがエスケープ処理されるので、おまじないとして入れておくことをおすすめします。
まず、オプションから
Option | ターゲット | 補足 |
ANCHOR | ? | CSSにおけるIDの役割。DOMで出力したHTMLでIDが確認できる |
AUTHOR | プロパティ「詳細/元の場所/作成者、および前の作成者」 | |
BOX_SIZING | セルの幅の計測方法 | CONTENT-BOX: 指定したサイズの外側に境界線やマージンが描画されます BORDER_BOX: 指定したサイズの内側に境界線やマージンが描画されます |
CATEGORY | プロパティ「詳細/説明/分類項目」 | |
COMMENTS | プロパティ「詳細/説明/コメント」 | |
CSSSTYLE | CSSを適用できる | |
DOM | HTML形式でDocument Object Modelを出力 | ファイル名もしくは(ドキュメントに記載がないが)ファイル参照名で指定が可能 |
DPI | グラフ出力の画像解像度 | 高解像度を指定する場合は、MEMSIZEで500MB以上を指定する |
FILE | 出力ファイル名 | |
GFOOTNOTE | グラフィックアウトプットへフットノートを出力するかどうか | SGPLOT, SGPANEL, SGSCATTER プロシージャのみ対応 |
GTITLE | グラフィックアウトプットへタイトルを出力するかどうか | SGPLOT, SGPANEL, SGSCATTER プロシージャのみ対応 |
ID | IDを指定して複数のインスタンスを生成 | 異なるオプションを指定したインスタンスを指定し、同じODS出力を異なる形式で出力できる。Identifierは一意であれば、文字でも数値でもよい。テストで結果を数パターンか一気に作成したい時等に有効? |
KEYWORDS | プロパティ「詳細/説明/タグ」 | |
SASDATE | なし | 効果なし(ドキュメントから削除予定とのこと) |
STATUS | プロパティ「詳細/コンテンツ/内容の状態」 | |
STYLE | スタイルを指定 | |
TEXT | テキストをセルA1に出力 | |
TITLE | プロパティ「詳細/タイトル」 | |
WORK | 一時ファイルを生成するフォルダを指定 | ドキュメントではファイル参照名がクオーティングされているが、必要ない |
オプションは
ODS EXCEL OPTIONS
という形で指定します。複数の場合はスペース区切り。
続いて、サブオプション
Option | ターゲット | 補足 |
ABSOLUTE_COLUMN_ WIDTH |
カラム幅 |
カンマ区切りで指定し、指定しない列がある場合は、指定したものが繰り返され、データの無い列は無視される。(例:ABSOLUTE_COLUMN_WIDTH= |
ABSOLUTE_ROW_HEIGHT | 行の高さ | カンマ区切りで指定し、指定しない列がある場合は、指定したものが繰り返され、データの無い列は無視される。(例:ABSOLUTE_COLUMN_HEIGHT= '10px,20in,30mm,4cm') 単位はin(インチ)、cm、em(標準的な組版の幅の単位)、ex(標準的な組版の高さの単位)、mm、pt(Point)、px(ピクセル)が指定できる |
AUTOFILTER | フィルタを設定 | ALL: すべてのカラムに設定する NONE: 設定しない range: 範囲で指定する(3-5 | A: C) column: カラムを指定する(2,4,6) |
BLACKANDWHITE | ページ設定/シート/白黒印刷 | |
BLANK_SHEET | 空シートを追加 | シート名は1以上28文字以下 |
CENTER_HORIZONTAL | ページ設定/余白/ページ中央/水平 | |
CENTER_VERTICAL | ページ設定/余白/ページ中央/垂直 | |
COLUMN_REPEAT | ページ設定/シート/印刷範囲/タイトル列 | column: カラムを指定する('1') range: 範囲で指定する('1-3' | 'A: C'). HEADER: ヘッダー列 |
CONTENTS | コンテンツ一覧のシートを作成 | |
DPI | ページ設定/ページ/印刷品質 | プリンタによっては設定がなく、反映できない場合もある |
DRAFTQUALITY | ドラフト品質を印刷に使用するか | ONの場合はグラフが印刷されない |
EMBEDDED_FOOTNOTES | フットノートをワークシート上に出力するか | |
EMBED_FOOTNOTES_ONCE | フットノートをワークシート上の最後に一度だけ出力するか | |
EMBEDDED_TITLES | タイトルをワークシート上に出力するか | |
EMBED_TITLES_ONCE | タイトルをワークシート上の最初に一度だけ出力するか | |
FITTOPAGE | ページ設定/ページ/拡大縮小印刷/次のページ数に合わせて印刷 | ここでOFFを指定しても、PAGES_FITWIDTHもしくは PAGES_FITHEIGHTに'1'を指定した場合は、ONになる また、ONを指定すると、PAGES_FITWIDTHと PAGES_FITHEIGHTを指定しない場合はそれぞれ'1'がセットされる |
FLOW | セル幅に収まりきれない場合に、セル内改行を使用せずに折り返す | cell-names: 指定したセル“A12”, “C1:E4”に適用 DATA:テーブルのデータセルに適用されます HEADERS:テーブルの列ヘッダーに適用されます ROWHEADERS: テーブルの行ヘッダーに適用されます TABLES: テーブルの列ヘッダー、行ヘッダー、データ全てに適用されます TEXT: TEXT出力、タイトル、フットノート、プロシージャタイトル、byラインに適用されます |
FORMULAS | 「=」から始まる値を書式として出力するか | ON: ='yyyy/m/d'→yyyy/m/d OFF: ='yyyy/m/d'→='yyyy/m/d' |
FROZEN_HEADERS | ウィンドウ枠の固定(行) | 数値を指定すると、その行数だけ固定される |
FROZEN_ROWHEADERS | ウィンドウ枠の固定(列) | 数値を指定すると、その列数だけ固定される |
GRIDLINES | ページ設定/シート/印刷/枠線 | |
HIDDEN_COLUMNS | カラムの非表示 | number-listcolumn: カラムを指定する('1,2,4,5-10') range: 範囲で指定する('1-3' | 'A: C'). |
HIDDEN_ROWS | 行の非表示 | number_list_range: 1,2,3-5 | 1: 5 | 1-10 |
INDEX | すべてのシートのインデックスをまとめたシートを作成 | |
MSG_LEVEL | TagSets.ExcelXPにあり、EXCELにないオプションを指定した場合のNOTEメッセージを抑制 | NO NOTES: NOTES(EXCELXPオプションXXXはこのExcelタグセットではサポートされません)を出力しない NO: NOTESを出力する |
ORIENTATION | 印刷の向き | PORTRAIT: 縦 LANDSCAPE: 横 NONE: 設定しない |
PAGE_ORDER_ACROSS | ページ設定/シート/ページの方向 | OFF: 左から右 ON: 上から下 |
PAGES_FITHEIGHT | ページ設定/ページ/拡大縮小印刷/次のページ数に合わせて印刷の縦 | 指定すると、FITTOPAGE もONになる NONE: 設定しない |
PAGES_FITWIDTH | ページ設定/ページ/拡大縮小印刷/次のページ数に合わせて印刷の横 | 指定すると、FITTOPAGE もONになる NONE: 設定しない |
PRINT_AREA | 印刷範囲 | a,2,g,20' | 'A2: G20' カンマ区切りで複数指定できる |
PRINT_FOOTER | フッターの内容 | footnoteステートメントの指定が優先される |
PRINT_FOOTER_MARGIN | ページ設定/余白/フッター | インチで指定したものが、cmに変換されて適用される 数値のみが指定可能で、単位の指定はできない |
PRINT_HEADER | ヘッダーの内容 | titleステートメントの指定が優先される |
PRINT_HEADER_MARGIN | ページ設定/余白/ヘッダー | インチで指定したものが、cmに変換されて適用される 数値のみが指定可能で、単位の指定はできない |
PROTECT_WORKSHEET | シートを保護するかどうか | |
ROWBREAKS_COUNT | 改ページを入れる行数 | |
ROWBREAKS_INTERVAL | 特定の場所に改ページを設定 | OUTPUT: アウトプット オブジェクト毎に改ページする PROC: プロシージャ毎に改ページする NONE: 改ページを設定しない |
ROWCOLHEADINGS | ページ設定/シート/印刷/行列番号 | |
ROW_HEIGHTS | 行の高さ | 7種類をカンマ区切りで指定。順に、テーブルヘッダー行、テーブル本体の行、BY行、タイトル行、フッター行、改ページ行、段落スキップの行の高さを指定。0を指定すると、スタイルから高さを取得する。 ABSOLUTE_ROW_HEIGHTと同様、単位付きで指定可能。 |
ROW_REPEAT | ページ設定/シート/印刷タイトル/タイトル行 | HEADER: ヘッダー行をタイトル行に設定 number: 指定行をタイトル行に設定 number-range: 指定範囲行をタイトル行に設定('1-3' | '1: 3') |
SCALE | ページ設定/ページ/拡大縮小印刷の割合 | |
SCREEN_RESOLUTION_ SCALE_FACTOR |
高解像度ディスプレイでのExcelスプレッドシートの表示を最適化するためのスケール係数 | 高DPIに対応するため、100、125、150、175等を指定(ディスプレイサイズや解像度によって異なる) |
SHEET_INTERVAL | シート区切り | BYGROUP: byで指定した変数毎にシートを分けます NONE: 1つのシートに出力します NOW: 新しいシートに出力します。実行後、前の指定方法に戻ります。 PAGE: プロシージャの出力毎にシートを分けます PROC: プロシージャ毎にシートを分けます TABLE: テーブル毎にシートを分けます SHEET_INTERVAL='NONE'を指定すると、ODSTEXT, ODSLIST プロシージャの PAGEBREAK=YES オプションが無視されます |
SHEET_LABEL | シート名のルール | NONE: 既定の名前が設定されます text-string: プリフィクスを指定します |
SHEET_NAME | シート名 | 28文字以下 |
START_AT | 出力開始位置 | (1,1 | A1) |
SUPPRESS_BYLINES | BY行を出力するかどうか | |
TAB_COLOR | シートの色 | color | #RRGGBB | rgba(0,100%,0,0.5) |
TITLE_FOOTNOTE_ NOBREAK |
TITLEとFOOTNOTEをシートに出力する際に、改行表示するかどうか | NO: セル内で折り返し表示する ON: 折り返さず、セル結合で幅を確保する |
TITLE_FOOTNOTE_ WIDTH |
指定した数だけ、TITLEとFOOTNOTEのセルを結合する | TITLE_FOOTNOTE_NOBREAKがYESのときは無視される 0: 使用しているカラム分だけ結合します |
ZOOM | ズーム倍率 |
サブオプションは
ODS EXCEL OPTIONS(SUBOPTIONS)
という形でカッコの中で指定する必要があります。こちらも複数の場合はスペース区切り。
ファイル自体の保護(=パスワード付加)以外は相当なことが(自動処理でも)できそうです。
TAB_COLORで指定できる色については
proc registry list startat="COLORNAMES"; run;
で取得するのがいいでしょう。
実行するよりとっとと確認したい方はこちらの記事へどうぞ