我的目标是创建一个多 mulitab 电子表格作为proc report
的输出,并让用户能够使用我创建的链接在每个选项卡中导航。这应该包括转到页面顶部。 我是一名新手程序员,经验丰富proc report
的问题。 我尝试使用脚注语句并成功。我收到一条错误消息,说"无法打开Excel
"。
这是我的 SAS 代码:
%MACRO rpt_top(COL,TITL,YR) ;;
DATA TMP4;
SET COMBO(WHERE=(VARNAME=&COL));
RUN;
ODS LISTING CLOSE;
ODS EXCEL FILE= "&my_excel_file." STYLE=SASWEB
OPTIONS
(SHEET_NAME ="Test"
SHEET_INTERVAL="NONE" STYLE='SASWEB'
EMBEDDED_TITLES = 'YES' EMBEDDED_FOOTNOTES = 'YES' BOX='YES'
/*TAB_COLOR='GREEN'**/ frozen_headers='6' autofilter='YES' Autofit_height='yes' orientation='Landscape' suppress_bylines='YES');
TITLE1 J=LEFT BOLD "TESTING";
footnote LINK="#'Test'!A4" '(CLICK TO RETURN TO TOP)';
ODS EXCEL OPTIONS
(STYLE='SASWEB' SPLIT='/'
orientation='Landscape' suppress_bylines='YES');
PROC REPORT DATA=TMP4 NOWD;
COLUMNS VARNAME
DEFINE VARNAME /DISPLAY FORMAT=$32. 'LINE NUMBER DESCRIPTION';
RUN;
%MEND;
ODS EXCEL CLOSE通常会自动打开,然后在Excel中输出文件。
开发 ODS EXCEL 输出时,您可能会尝试使用相同的文件名,而以前的小版本仍在 Excel 中打开。 那时您将看到一条日志消息,例如
ERROR: File is in use, c:tempsample.xlsx.
使用企业指南时,警报可能略有不同。
开发时,请确保在重新运行代码之前关闭 Excel,或使用增量输出文件名。
例如
filename xlout "c:tempsample.xlsx"; * for production use;
filename xlout "%sysfunc(pathname(WORK))sample-%sysfunc(monotonic()).xlsx"; * for development use;
使用增量文件命名,可以更轻松地比较和对比语句对输出的影响。