0
我想在SAS中使用ODS Excel在Excel中準備報表。該報告包含兩張並排放置三張桌子的表格。我使用Panelcol選項,但在ODS Excel中不可用。另外,Start_at =選項似乎不起作用?SAS ODS Excel生成Excel表並排生成Excel表格
無論如何它可以在ODS Excel中完成嗎?請告訴我。 任何幫助將非常感激。
謝謝 桑卡
我想在SAS中使用ODS Excel在Excel中準備報表。該報告包含兩張並排放置三張桌子的表格。我使用Panelcol選項,但在ODS Excel中不可用。另外,Start_at =選項似乎不起作用?SAS ODS Excel生成Excel表並排生成Excel表格
無論如何它可以在ODS Excel中完成嗎?請告訴我。 任何幫助將非常感激。
謝謝 桑卡
尚卡爾:
的start_at =選項不能改變中期片的ODS EXCEL文檔9.4狀態。 Link
(START_AT ='string')指定報告的起始單元格。 默認爲從第1列和第1行開始。默認1,1提示此選項 無法在工作表中間更改。示例ods excel 選項(start_at =「2,2」);
所以這個例子不是如你所期望的那樣工作。第一個start_at被尊重,並且在同一頁面上的後續輸出被堆疊,同時仍然履行列的第一個開始。
ods _all_ close;
ods excel file='%temp%\3-tables-in-first-tab-sample.xlsx'
options (sheet_interval='none')
;
ods excel options (start_at="2,2");
* top of output is upper left corner;
proc print noobs data=sashelp.class(keep=name age);run;
* top of output is to the right and down three rows from the first output;
ods excel options (start_at="5,5");
proc print noobs data=sashelp.class(keep=name weight height);run;
ods excel options (start_at="1,9");
proc print noobs data=sashelp.class(keep=name sex);run;
ods excel close;
將多個表放在一起的一種方法是創建一個虛擬表,以橫向方式添加數據。
例子:
%macro RHS_append (out=, data=);
%if not %sysfunc(exist(&out)) %then %do;
data &out; set &data; run;
%return;
%end;
%local nout names labels;
proc contents noprint data=&out out=outvar(keep=name varnum label);
proc contents noprint data=&data out=datavar(keep=name varnum label);
proc sql noprint; select count(*) into :nout trimmed from outvar;
select
cats(name,'=v',&nout+varnum+1)
, case
when label=''
then cats('v',&nout+varnum+1,'=',quote(trim(name)))
else ''
end
into
:names separated by ' '
, :labels separated by ' '
from datavar order by varnum
;
create table gap (v%eval(&nout+1) char(1) label='a0'x);
quit;
data &out;
merge &out gap &data(rename=(&names)); %* rare use of merge without by;
label &labels;
run;
%mend;
options mprint;
proc delete data=foo;
run;
%RHS_append (out=foo, data=sashelp.class);
%RHS_append (out=foo, data=sashelp.gas);
%RHS_append (out=foo, data=sashelp.cars);
ods excel file='%temp%\3-tables-in-first-tab-sample.xlsx';
proc print label data=foo;
run;
ods excel close;
你能否提供展示你想,這不是什麼工作的一些示例代碼?也許代碼可以在ODS PDF或TAGSETS.EXCELXP中工作,如果這是您更熟悉的?使用SASHELP.CLASS。 – Joe
此外,您還需要包含SAS版本(包括維護版本)(例如,SAS 9.4 TS1M4是我的)。 – Joe