BookmarkSubscribeRSS Feed
andreas_lds
Jade | Level 19

I need to create an excel-file with embedded titles and the title needs text aligned on left and right in the same line. This can easily be done with a title-statement (see code below), but as soon as ods excel comes into play, the automatic column-spanning hides parts of the left-aligned title. So i moved the title-text to the data step, with rwi inserting rows before the header of a table works well, except for one thing: the heights of the rows is unnecessary large.

I can't use the option row_heights in the ods-statement, because i need the automatic height-calculation for the data.

PartlyHiddenTitle.PNG

ods excel 
      file= "rwi_title.xlsx"
      options(
         flow= "data"
         sheet_interval= "none"
         embedded_titles= 'yes'
      );


proc sql noprint;
   select Name into :varList separated by ' '
      from sashelp.vcolumn
         where libname = 'SASHELP' and memname = 'CARS'
   ;
quit;


/*title1 justify=left "The most fantastic sashelp.cars" justify=right "%sysfunc(today(), ddmmyyp10.)";*/

data _null_;
   set sashelp.cars end=done;

   if _n_ = 1 then do;
      declare odsout rwi();

      rwi.table_start();
      rwi.head_start();

      rwi.row_start(); /* height seems to be calculated without considering column_span */
      rwi.format_cell(data: 'The most fantastic sashelp.cars', column_span: 10, style_attr: 'color= red');
      rwi.format_cell(data: "%sysfunc(today(), ddmmyyp10.)", column_span: 5, just: 'R', style_attr: 'color= red');
      rwi.row_end();

      rwi.row_start();
      rwi.format_cell(data: 'CARS', column_span: 10, style_attr: 'color= red');
      rwi.format_cell(data: 'CARS', column_span: 5, just: 'R', style_attr: 'color= red');
      rwi.row_end();

      rwi.row_start();
      do i = 1 to countw("&varList");
         rwi.format_cell(data: scan("&varList.", i));
      end;
      rwi.row_end();
      rwi.head_end();
      rwi.body_start();
   end;

   rwi.row_start();
   do i = 1 to countw("&varList");
      rwi.format_cell(data: vvaluex(scan("&varList.", i)));
   end;
   rwi.row_end();

   if done then do;
      rwi.body_end();
      rwi.table_end();
   end;
run;

title;

ods excel close;

Is this is feature in 9.4m5?

2 REPLIES 2
Cynthia_sas
Diamond | Level 26

Hi:

  Removing RWI from the equation, with just a plain title statement, I can use the TITLE_FOOTNOTE_WIDTH= sub-option to specify the number of columns that the title should span. This works for me:

Cynthia_sas_0-1588977854783.png

Of course the LINE statement in PROC REPORT automatically spans the whole table. But the sub-option and the title statement should work no matter what the procedure or step is.

Cynthia

andreas_lds
Jade | Level 19

Thanks for your time, will look try it next week, when i am back in office.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1970 views
  • 0 likes
  • 2 in conversation