Hi:
As far as I know, when you use CELLHEIGHT and CELLWIDTH (or HEIGHT and WIDTH in SAS 9.2) attributes for ODS, you are setting the height or width of the cell -- telling ODS that you want it to use YOUR setting instead of the setting that it calculates, based on the font, the text in the cell, the cellpadding, etc. So this is more of an absolute width or height that you set, instead of a minimum.
You are right that when you use CELLHEIGHT in a style definition (or in a STYLE= override) that it "sets" the height regardless of the content of the cell. I would not necessarily call this "forcing" the height, but I can see how you would regard it that way.
It might seem counter-intuitive, but if you use CELLWIDTH, you can cause ODS to wrap text in cells by setting a smaller cellwidth than ODS needs for the text. When the text in a cell wraps, the cell must get higher as a result. Consider the program at the end of this post. Report #2 wraps the long group variable value, while Report #3 shows the increased cellheight, but there is no text wrapping. Report #1 shows the default behavior.
cynthia
[pre]
** Make some test data;
data prdsale;
set sashelp.prdsale;
short = substr(country,1,1);
long = catt(region, '~', division, '~',prodtype,'~abcdefghijklmnopqrstuvwxyz');
if division = 'CONSUMER' and region = 'EAST' and
country in ('CANADA', 'GERMANY') and
product in ('BED','CHAIR');
run;
ods pdf file='c:\temp\cellwidth.pdf';
proc report data=prdsale nowd;
title '1) Default cellwidth and cellheight';
column short long product actual predict;
define short / group;
define long / group;
define product / group;
define actual / sum;
define predict / sum;
break after short / summarize;
run;
proc report data=prdsale nowd;
title '2) Changing cellwidth ONLY';
column short long product actual predict;
define short / group;
define long / group
style(header)={cellwidth=1.5in}
style(column)={cellwidth=1.5in};
define product / group;
define actual / sum;
define predict / sum;
break after short / summarize;
run;
proc report data=prdsale nowd;
title '3) Changing cellheight ONLY -- does NOT change CELLWIDTH';
column short long product actual predict;
define short / group;
define long / group
style(header)={cellheight=1.5in}
style(column)={cellheight=1.5in};
define product / group;
define actual / sum;
define predict / sum;
break after short / summarize;
run;
ods pdf close;
[/pre]