Hi:
When I run your code in Windows:
1) the sheet name is correct
and the frozen headers -do- work (although, because SASHELP.CLASS is so small, only the first observation "scrolls")
The fact that you do not see a changed sheet name or frozen headers is an issue you should report and resolve through SAS Technical Support.
2) You will never see the SAS title, by default, -inside- the spreadsheet -- the SAS title goes into the header area of the spreadsheet -- and you view it with Print Preview -- this is the normal behavior (you have to change it with the EMBEDDED_TITLES suboption. For more information about ExcelXP tagset suboptions, refer to this paper:
http://www.nesug.org/proceedings/nesug08/ap/ap06.pdf
3) _ALL_ means _ALL_ -- the behavior you see is the normal behavior. You can't exclude ID from _ALL_. However, you could use some macro variable approaches something like:
VAR &REST;
where &REST was a macro variable that contained the list of variables you wanted -- without ID in the list. You can create a list of variable names by using the DICTIONARY.COLUMNS or SASHELP.VCOLUMN tables.
One possible PROC SQL step to create such a macro variable might be:
[pre]
proc sql;
select name into :rest
from dictionary.columns
where upcase(name) ne 'ID' and
(libname = 'WORK' and memname = 'TEST');
quit;
%put the other variable names are: &rest;
[/pre]
for more information on the "DICTIONARY" tables, refer to:
http://www2.sas.com/proceedings/sugi26/p017-26.pdf
http://www.bassettconsulting.com/dict_slides.pdf
http://analytics.ncsu.edu/sesug/2005/TU02_05.PDF
http://www.mwsug.org/proceedings/2009/tutorials/MWSUG-2009-T08.pdf
cynthia