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


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


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


/************************/
/*	Uso de "ODS excel"	*/
/************************/


/****************************************/
/* 	  Ejemplos creando y aplicando 		*/
/*    estilos para tablas y gráficos 	*/
/*    en Excel 							*/
/****************************************/



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



/* Son 3 ejemplos (emmmm... en realidad son 2 ejemplos, lo que pasa es que el segundo
vale x 2) */


/* Ejemplo 01: usamos estilos sobre una tabla*/

%let path = g:\temp; /*variable macro con la ruta*/

/* Vamos a crear un estilo. Esto se puede hacer de varias formas. Nosotros elegimos
usar el 'Paso Data' */
/* Los estilos se guardan en un archivo con extensión 'css' */

/* Creamos un archivo CSS (Cascading Style Sheets) */ 
filename css "&path.\css_01.css"; 

/* Escribimos en el archivo css */ 
data _null_; 
file css noprint linesize=132; 
put 
".body {background-color: lightblue; } " / 
".header{background-color: gold; } " / 
".rowheader {background-color: purple; " / 
" color: white; } " / 
".data {background-color: lightgreen; } " ; 
run; 

/* Creamos una tabla para hacer la prueba */ 
options linesize=255; 
data dataset_prueba;
	Columna_1 = 'Dato 1';
	output;
	Columna_1 = 'Dato 2';
	output;
	Columna_1 = 'Dato 3';
	output;
	Columna_1 = 'Dato 4';
	output;
	Columna_1 = 'Dato 5';
	output;
	Columna_1 = 'Dato 6';
	output;
	Columna_1 = 'Dato 7';
	output;
run;

/* Enviamos a un archivo Excel sin usar estilos */ 
ods excel file = "&path.\Prueba_1_sin_estilos.xlsx"; 
proc print data=dataset_prueba; 
run;

ods excel close; 

/* Enviamos a un archivo Excel usando el estilo que creamos */ 
ods excel file = "&path.\Prueba_2_con_estilo.xlsx" cssstyle = "&path.\css_01.css"
options(embed_footnotes_once='on'
embedded_footnotes='on'
embed_titles_once='on'
embedded_titles='on'
sheet_interval='proc');

*title1 justify=left font='Calibri' height=14pt color=white bold bcolor=darkblue 
	"Título 1 a izquierda blanco con fondo azul";

title1 font='Arial' height=12pt 'Usamos el estilo que creamos';
footnote1 font='Arial' height=10pt 'background-color: lightblue'; 
footnote2 font='Arial' height=10pt 'header{background-color: gold; }'; 
footnote3 font='Arial' height=10pt 'rowheader {background-color: purple + color: white'; 
footnote4 font='Arial' height=10pt 'data {background-color: lightgreen'; 
proc print data=dataset_prueba; 
run; 

ods excel close;

title;
footnote;



/* Ejemplo 02: en segundo lugar probamos con un gráfico */

/* Creamos un segundo archivo CSS (no lo olviden: Cascading Style Sheets)*/ 
/* Vamos a usar este estilo en un gráfico */

filename css "&path.\css_02.css"; 

data _null_; 
file css noprint linesize=132; 
put 
".graphbackground {background-color: grey; }" / 
".graphtitle1text {color: blue; Font: 20pt arial; font-weight: bold;}" /
".graphfootnotetext {color: blue; Font: 12pt arial; font-weight: bold;}" / 
".graphvaluetext {color: black; }" / 
".graphdata1 {color: red; } 
.graphdata2 {color: green; } 
.graphdata3 {color: blue; } 
.graphdata4 {color: yellow; } 
.graphdata5 {color: orange; } 
.graphdata6 {color: brown; } 
.graphdata7 {color: violet; } 
.graphdata8 {color: darkgreen; } 
.graphdata9 {color: purple; }";
run;


/* Ahora el gráfico */
/* Para lo que extrañan las macros, vamos a incluir el gráfico dentro de una macro */

/* Como voy a crear una macro uso estas 2 opciones: */
options mcompilenote=all symbolgen;

%let path = g:/temp; /* este mismo estaba más arriba; es por las dudas... */

/* Creamos la macro que hace el gráfico*/
%macro Pie_it; 
Proc SQL; 
Create View Work.Sorted_1 as select T.Region, T.Sales 
from Sashelp.Shoes(where=(Region ne "Asia")) as T; 
Quit;

Legend1 frame Position = (Bottom Center Outside);

title1 "Gráfico de sectores de Sashelp.Shoes por Región"; 
title2 "No incluye a Asia"; 

Proc GChart Data =Work.Sorted_1; 
Pie3D Region / sumvar=Sales type=SUM legend=Legend1 slice=outside percent=outside 
value=outside other=4 otherlabel="Other" coutline=BLACK noheading;
Run; 
Quit;
Title; 
Footnote; 
Run; 
%mend Pie_it;

/* Podemos ver en el Log si compiló correctamente (cosa que es fundamental!)

/* Ahora volvemos a hacer la prueba con y sin el estilo */

/* Con el primer estilo (el CSS_1)  */ 
ods excel file = "&path.\dataset_prueba_file_1.xlsx"
options(embed_footnotes_once='on'
embedded_footnotes='on'
embed_titles_once='on'
embedded_titles='on'
sheet_interval='proc'); 

%Pie_it; 

ods excel close;

/* Con el segundo estilo (el CSS_2)  */ 
ods excel file = "&path.\dataset_prueba_file_2.xlsx" cssstyle = "&path.\css_02.css"
options(embed_footnotes_once='on'
embedded_footnotes='on'
embed_titles_once='on'
embedded_titles='on'
sheet_interval='proc'); 

%Pie_it; 

ods excel close;


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