Sas ods excel和proc模板

Sas ods excel和proc模板,sas,sas-ods,Sas,Sas Ods,在通过ods模板定义名为excel的样式后,尝试使用ods-excel时遇到错误。我想知道是否有人能解释为什么会发生这种情况,因为我认为ods样式和ods目的地是两个完全不同的东西 以下ods excel语句工作正常: ods excel file="%sysfunc(pathname(work))\x.xlsx"; proc print data=sashelp.class; run; ods excel close; 但是如果我在运行下面的proc模板code之后尝试运行它,我会得到一个错

在通过
ods模板定义名为
excel
的样式后,尝试使用
ods-excel
时遇到错误。我想知道是否有人能解释为什么会发生这种情况,因为我认为ods样式和ods目的地是两个完全不同的东西

以下
ods excel
语句工作正常:

ods excel file="%sysfunc(pathname(work))\x.xlsx";
proc print data=sashelp.class;
run;
ods excel close;
但是如果我在运行下面的
proc模板
code之后尝试运行它,我会得到一个错误

proc template;
  define style excel; 
    parent=styles.htmlblue;
    class graph       / attrpriority='none';
    style graphdata1  / contrastColor=#416FA6 markersymbol='circlefilled';
    style body from body / pagebreakhtml=_undef_; * REMOVE THE HORIZONTAL RULE;
  end; 
run; 

ods excel file="%sysfunc(pathname(work))\x.xlsx";
proc print data=sashelp.class;
run;
ods excel close;
错误是:

ERROR: Could not find method.
ERROR: No body file. EXCEL output will not be created.

我可以将我的样式重命名为
excel
以外的其他样式来解决这个问题,但我不明白为什么会发生这种情况。有人能解释吗?谢谢。

从评论中,谢谢@Tom:

使用
ods styles.excel
而不是
ods excel

ods styles.excel file="%sysfunc(pathname(work))/x.xlsx";
proc print data=sashelp.class;
run;
ods styles.excel close;

错误是否来自PROC模板?还是程序打印?另外,我没有看到任何使用新样式的尝试。@tom我相信错误来自于
ods excel
语句。正确-无需尝试使用新样式即可触发错误。我可以确认这会导致错误,但不确定原因。在9.4M6中测试如果使用
styles.excel
而不是
excel
作为路径名会发生什么情况?@Tom Yup-这就解决了问题。如果你把它作为回答,我会接受的。我猜在完全限定的情况下,它避免了某种命名冲突。