BookmarkSubscribeRSS Feed
Berenice25
SAS Employee
/************************************/
/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/
/************************************/


/************************************/
/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            23Jun2022             */
/*									*/
/************************************/
/************************************/


/************************************/
/* Expositor: Daniel Vazquez Vargas */
/************************************/
 

/************************/
/*	Uso de "ODS html"	*/
/************************/


/****************************************************************/
/* 	  Escribir tablas en una misma hoja Excel, en una grilla 	*/
/****************************************************************/


/****************************************************************/
/* 	  Vamos a escribir una parte de 4 tablas en una misma hoja 	*/
/* 	  Excel. La idea es colocarlas en los vértices de un 		*/
/*	  cuadrado de 3 x 3, lo que nos permite dejar una fila y 	*/
/*    una columna de separación.								*/
/****************************************************************/




/*-------------------*/
/* inicio del código */
/*-------------------*/

/* Necesitamos algunos parámetros de entrada, que son: 	*/
/* ----> 4 tablas (o datasets)   						*/
/* ----> cantidad de filas (u observaciones) 			*/
/* ----> cantidad de columnas (o variables)				*/


/* Elegimos las 4 tablas */
%let dataset1=sashelp.class;
%let dataset2=sashelp.cars;
%let dataset3=mapssas.world;
%let dataset4=sashelp.air;

/* Elegimos la cantidad de filas y columnas */
%let filas=10;
%let columnas=5;

/* Elegimos el archivo Excel */
ods html file="g:\temp\grilla.xls";

/*Armo la grilla*/
ods layout gridded rows=3 columns=3; /*¡sí! ¡ODS layout! SAS está lleno de secretos...*/


/* Ahora sí, comenzamos a escribir las tablas */
/* Tabla Nro. 1 */
ods region row=1 column=1; /*Voy a la primera esquina*/

proc contents data=&dataset1 out=lista_vars noprint varnum;
run;

proc sort data=lista_vars  out=lista_vars1;
	by varnum;
run;

proc sql noprint outobs=&columnas;
	select  name
		into :variables separated by ' '
			from lista_vars1;
quit;

%put &=variables;  /*es para controlar las variables en el Log*/

title1 justify=center font='Arial' height=14pt color=white bold bcolor=grey "&dataset1";
proc print data=&dataset1 (obs=&filas);
	var &variables;
run;
title;


/* Tabla Nro. 2 */
ods region row=1 column=3;  /*Voy a la segunda esquina*/

proc contents data=&dataset2 out=lista_vars noprint varnum;
run;

proc sort data=lista_vars  out=lista_vars1;
	by varnum;
run;

proc sql noprint outobs=&columnas;
	select  name
		into :variables separated by ' '
			from lista_vars1;
quit;

%put &=variables; /*es para controlar las variables en el Log*/

title1 justify=center font='Arial' height=14pt color=white bold bcolor=grey "&dataset2";

proc print data=&dataset2 (obs=&filas);
	var &variables;
run;
title;


/* Tabla Nro. 3 */
ods region row=3 column=1;  /*Voy a la tercera esquina*/

proc contents data=&dataset3 out=lista_vars noprint varnum;
run;

proc sort data=lista_vars  out=lista_vars1;
	by varnum;
run;

proc sql noprint outobs=&columnas;
	select  name
		into :variables separated by ' '
			from lista_vars1;
quit;

%put &=variables; /*es para controlar las variables en el Log*/

title1 justify=center font='Arial' height=14pt color=white bold bcolor=grey "&dataset3";
proc print data=&dataset3 (obs=&filas);
	var &variables;
run;
title;


/* Tabla Nro. 4 */
ods region row=3 column=3;  /*Voy a la cuarta esquina*/

proc contents data=&dataset4 out=lista_vars noprint varnum;
run;

proc sort data=lista_vars  out=lista_vars1;
	by varnum;
run;

proc sql noprint outobs=&columnas;
	select  name
		into :variables separated by ' '
			from lista_vars1;
quit;

%put &=variables; /*es para controlar las variables en el Log*/

title1 justify=center font='Arial' height=14pt color=white bold bcolor=grey "&dataset4";
proc print data=&dataset4 (obs=&filas);
	var &variables;
run;
title;

ods layout end;

ods html close;

ods listing;



/*--------------------*/
/* 	fin del código	  */
/*--------------------*/