Hi:
I believe you are running into this issue:
http://support.sas.com/techsup/unotes/SN/007/007926.html
The issue is that CSV does not have a mechanism for spanning headers the way you want. The "workaround" is to use ODS HTML to generate a file in which Excel will "accept" the spanning correctly.
If you use style=minimal for your stored process, the look will approximate what you get from CSV. Or, you other alternative is to use the SASREPORT format for the returned results, in which case, you will not get any style coming back from the stored process (unless you turn the style on in the client application).
This test program will show you what the minimal style looks like. The program uses SASHELP.PRDSALE to do a table similar to what your tabulate program was doing. Note that the ODS CSV syntax is creating a CSV file (you can look at it with Notepad) and both the ODS HTML and ODS MSOFFICE2K syntax are creating HTML files (you can double check this with Notepad). The naming of the MSOFFICE2K file as .XLS is just a convenience to be able to launch Excel automatically when you double click on the file name--this file is really an HTML file that conforms to MS-HTML specs.
cynthia
[pre]
ods listing;
ods csv file='c:\temp\tab_forum.csv' ;
ods html file='c:\temp\tab_forum.html' style=minimal;
ods msoffice2k file='c:\temp\tab_forum_mso.xls' style=minimal;
PROC TABULATE DATA=sashelp.prdsale STYLE={font_size=1}
f=comma14.;
VAR actual / STYLE=[font_size=1];
CLASS prodtype / MISSING ORDER=DATA STYLE=[font_size=1];
CLASS product / MISSING ORDER=DATA STYLE=[font_size=1];
CLASS division / MISSING ORDER=DATA STYLE=[font_size=1];
CLASS country / MISSING ORDER=DATA STYLE=[font_size=1];
CLASS region / MISSING ORDER=DATA STYLE=[font_size=1];
CLASS quarter / MISSING ORDER=DATA STYLE=[font_size=1];
CLASSLEV product / STYLE=[font_size=1] ;
CLASSLEV division / STYLE=[font_size=1] ;
CLASSLEV country / STYLE={NOBREAKSPACE=ON} STYLE=[font_size=1];
CLASSLEV region / STYLE=[font_size=1] ;
CLASSLEV quarter / STYLE=[font_size=1] ;
TABLE
/* Page Dimension */
division={LABEL=' '},
/* Row Dimension */
country={LABEL=''}*
quarter={LABEL='' },
/* Column Dimension */
actual
region={LABEL='Region'}*
actual ={LABEL=''}*sum=''
all={LABEL='Total' STYLE={JUST=RIGHT VJUST=BOTTOM}}
*actual={LABEL=''}
*sum=''
/* Table Options */
/ BOX={LABEL=_page_ } style={borderwidth=1 font_weight=medium}
NOCONTINUED;
RUN;
ods _all_ close;
[/pre]