BookmarkSubscribeRSS Feed
Webinar SAS y Excel 2021 | Códigos: Capítulo 4 "Tomando control de Excel"
Berenice25
SAS Employee

¡Hola!

Les compartimos los siguientes códigos, que forman parte del capítulo "Tomando control de SAS" del pasado webinar Saliendo de Excel entrando al mundo SAS con fecha del 22 de septiembre del 2021. Encontrarás los siguientes:

  • Código 1: Hola Mundo 
  • Código 2: Mas resultados con ODS Excel
  • Código 3: Destino....Excel
  • Código 4: Macro Abre Excel

Puedes revisar nuevamente la grabación si tienes alguna duda.

 

Código 1: Hola mundo

 

/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/

/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            22Sept2021            */
/*									*/
/************************************/

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


/************************************/
/* 	      Programa 'Hola'			*/
/************************************/

/*--------*/ /* inicio */ /*--------*/ /************************************/ /* Primero: probamos dentro de SAS */ /************************************/ Data prueba; saludar = 'hola....'; Run; Proc Print data = prueba label split = '*' noobs; Label saludar = 'una*prueba'; Var saludar; Run; /*************************/ /* Ahora sí, combinamos */ /* SAS y Excel */ /*************************/ /* Crea una tabla SAS */ Data Hola_al_mundo; saludar = 'Tengan un buen día!'; Run; /* Crea una variable macro */ %let hello_xml = c:\temp\Resultados\Hola_mundo_test.xml; /* Abre ODS ExcelXP e indica nombre de archivo y subcarpeta */ Ods tagsets.excelxp file="&hello_xml"; /* Opciones de ods para usar Proc Print */ Ods tagsets.excelxp options(Sheet_Name='Hola x allá!') Style=minimal; /* Crea un archivo xml usando la salida del ODS y el Proc Print */ Proc Print data = Hola_al_mundo split = '*' noobs ; Label saludar = 'Saludos*Planeta*Tierra'; Var saludar / style(head) = {Font_Size = 2}; /* aumenta el tamaño de la fuente de la fila 1 */ Run; Ods tagsets.excelxp close; /* Como final, un poquito de magia */ Options noxwait noxsync; /* Ejecuta Excel 2010! */ X "'C:\Program Files\Microsoft Office\Office14\EXCEL.EXE' &hello_xml"; /* la magia: el comando 'X' */ Options xwait xsync; Run; /*--------*/ /* fin */ /*--------*/

 

 

Código 2: Más resultados con ODS Excel

 

/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/

/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            22Sept2021            */
/*									*/
/************************************/

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


/************************************/
/* 	  Envía los resultados de dos	*/
/* 	  Procedimientos SAS a Excel 	*/
/************************************/


/*--------*/
/* inicio */
/*--------*/


/* Ejemplo 1: Tabla de Frecuencias y Gráfico de Barras */

ODS graphics;
ods Excel file="C:\Temp\Resultados\Frecuencias_BarraH_Histograma.xlsx";

PROC FREQ DATA=sashelp.cars
	ORDER=data;
	ods exclude twowayfreqs;
	TABLES Type * Origin /
		PLOTS=freqplot(orient=horizontal);
RUN;

ods Excel close;


/* Ejemplo 2: Tabla de estadísticas con fondo personalizado */

proc template;  /* crea una plantilla de estilo */
	define style styles.background;
		parent=styles.excel;
		class body/background=_undef_
			backgroundimage="G:\SAS y Excel 2021\Data-Analytics.jpg"; /* pueden conseguir esta imagen en internet */
	end;
run;

ods excel file="C:\Temp\Resultados\ODS_Excel_Estadistica_Back.xlsx"
	options(embedded_titles="yes"
	start_at="5,5")   /* la posición en que comienza la tabla */
	style=styles.background;  /* la plantilla de estilo que utiliza */
ods noproctitle;

proc means data=sashelp.cars MAXDEC=2;  /* estadística descriptiva con 2 decimales */
	title 'Este es un Título';
	var Cylinders Horsepower MPG_City;
	class type;
run;

ods excel close;
title;




/*--------*/
/*  fin	  */
/*--------*/

 

Código 3: Destino....Excel

 

/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/

/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            22Sept2021            */
/*									*/
/************************************/

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


/************************************/
/* 	  Ejemplos controlando la 		*/
/* 	  salida a Excel	 			*/
/************************************/


/*--------*/
/* inicio */
/*--------*/


/**************/
/* Ejemplo 1: */
/**************/

/* Cambia la orientación a 'Landscape' */
/* Envía información a diferentes hojas, separando por 'Region' */
/* Controla el ancho de filas alternando cada dos filas */
/* Controla el ancho de columnas en roden progresivo */

filename aa "G:\SAS y Excel 2021\Resultados\prueba_a.xlsx";
ods excel file=aa;
ods excel options(ABSOLUTE_COLUMN_WIDTH='5,10,15,20,25,30,35'
	ABSOLUTE_ROW_HEIGHT='30,10'
	orientation='LANDSCAPE' );

proc print data=sashelp.shoes;
	by region;
run;

ods excel close;
run;



/**************/
/* Ejemplo 2: */
/**************/

/* Cambia la orientación a 'Landscape' */
/* Agrega "Autofiltros" a 3 columnas */
/* Oculta 2 columnas */
/* Cambia el color de las etiquetas de las hojas de Excel a color rojo */

filename bb "G:\SAS y Excel 2021\Resultados\prueba_b.xlsx";
ods excel file=bb;
ods excel options(autofilter='1-3'
	hidden_columns='5,6'
	tab_color='red'
	orientation='LANDSCAPE' );

proc print data=sashelp.shoes;
	by region;
run;

ods excel close;
run;




/**************/
/* Ejemplo 3: */
/**************/

/* Agrega títulos y pie de página */
/* Congela las primeras filas */

filename cc "G:\SAS y Excel 2021\Resultados\prueba_c.xlsx";
Title "Lista de la tabla 'Shoes' por Region";
Footnote "Datos presentados por Region";
ods excel file=cc;
ods excel options(EMBEDDED_TITLES='ON'
EMBED_FOOTNOTES_ONCE='ON'
	FROZEN_HEADERS='ON' );

proc print data=sashelp.shoes;
	by region;
run;

ods excel close;
run;



/**************/
/* Ejemplo 4: */
/**************/

/* La tabla comienza en la (fila,columna)=(3,C) */
/* Cambian los nombres de las hojas del Excel */
/* No aparece más los subtítulos: "Region=Asia" "Region=Africa" y demás */
/* El encabezado continúa congelado */

filename dd "G:\SAS y Excel 2021/prueba_d.xlsx";
Title "Lista de la tabla 'Shoes' por Region";
Footnote "Datos presentados por Region";
ods excel file=dd;
ods excel options(EMBEDDED_TITLES='ON'
	EMBED_FOOTNOTES_ONCE='ON'
	FROZEN_HEADERS='ON'
	SUPPRESS_BYLINES='ON'
	SHEET_LABEL='Shoes'
	Start_at='3,3');

proc print data=sashelp.shoes;
	by region;
run;

ods excel close;
run;




/*--------*/
/*  fin	  */
/*--------*/

 

Código 4: Macro abre Excel

 

/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/

/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            22Sept2021            */
/*									*/
/************************************/

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


/************************************/
/* 	  Ejemplo de una macro de SAS	*/
/* 	  que controla Excel	 		*/
/************************************/



/*--------*/
/* inicio */
/*--------*/

/* Macro para controlar Excel */
/* Abre un archivo de Excel; es Excel, desde ya! */

/* Primero: crea la macro */
%macro Abre_Excel (file_name=,         /* archivo Excel con el path completo */
			wait=8);        /* parámetro para tiempo de espera al abrir Excel */
	%if &file_name = %then
		%do;
			%put "No tengo el nombre del archivo Excel";
		%end;

	%if &file_name ne %then
		%do;
			%let command   = "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE";
			x %unquote(%str(%'&command &file_name %'));

			data _null_;
				x = sleep(&wait);
			run;

		%end;
%mend Abre_Excel;


/* Segundo: utiliza la macro */
%Abre_Excel(file_name=C:\Temp\Resultados\ODS_Excel_Estadistica_Back.xlsx, wait=8)  /* utiliza la macro con un archivo de ejemplo */



/*--------*/
/*  fin	  */
/*--------*/

Por último, no te pierdas de las próximas publicaciones con los  demás códigos. 

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Article Labels
Article Tags
Contributors