使用 proc 报告为 SAS 中 Excel 电子表格的每个选项卡创建指向页面顶部的链接



我的目标是创建一个多 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;

使用增量文件命名,可以更轻松地比较和对比语句对输出的影响。

最新更新