/************************************/
/************************************/
/* */
/* 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 */
/*--------------------*/