Consejos y trucos

BookmarkSubscribeRSS Feed
Tip Semanal 019: Exporta a Excel con EXPORT
Berenice25
SAS Employee

El presente Tip incluyen varios -pero varios en serio, no es mentira- ejemplos con alternativas de exportación de una tabla a Excel. 
Siempre utilizando el mismo procedimiento, aprovechamos para mostrarles algunas de las características de los motores (o engines) más conocidos para interactuar entre SAS y Excel. Y no nos olvidamos de renombrar, filtrar y más.

 

/****************************************************************************/
/* Exporta archivos SAS como archivos de Excel utilizando Proc Export.	  	*/
/* Ejemplos con varias alternativas.										*/
/****************************************************************************/


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


/*----------------------------------------------------------------------*/
/* IMPORTANTE_1: es necesario tener en cuenta que algunas alternativas	*/
/* de exportación necesitan 'SAS/ACCESS to PC Files' activado.			*/	
/* 'SAS/ACCESS to PC Files' permite importar/exportar de/a varios tipos	*/
/* de archivos, por ejemplo a Excel.									*/		
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/* IMPORTANTE_2: los diferentes 'motores' (ver DBMS) se utilizan para 	*/
/* poder resolver la comunicación entre SAS (vamos a suponer que 		*/
/* contamos con SAS de 64 bits) y Excel (que podría ser de 32 o de 		*/
/* 64 bits. 															*/
/*----------------------------------------------------------------------*/

 %put Versión de SAS: &sysvlong; /* muestra la versión de SAS en el Log */

 
/*----------------------------------------------------------------------*/
/* Ejemplo 1: el motor es 'EXCEL'. 										*/
/* Fue pensado para las versiones de Excel 97, 2000, 2002 y 2003.		*/
/* Recordar que la máxima cantidad de columnas es 255.					*/
/* Exporta a '.xls', '.xlsb' y '.xlsx'.							 		*/
/*----------------------------------------------------------------------*/

PROC EXPORT DATA = sashelp.cars 
	OUTFILE = "G:\Shared\Customer Success\Autos_xls" 
	DBMS = EXCEL 
	REPLACE; /* permite reemplazar/actualizar el archivo Excel */
	sheet="Autos";  /* nombre de la hoja */
RUN;

 
/*----------------------------------------------------------------------*/
/* Ejemplo 2: el motor es 'EXCELCS'. 									*/
/* Es útil para interactuar entre SAS de 64 bits y Excel de 32 bits.	*/
/* Exporta a otros tipos de archivo Excel, además del famoso '.xls'		*/
/* También permite trabajar en SAS bajo Unix. 							*/
/*----------------------------------------------------------------------*/

PROC EXPORT DATA = sashelp.cars 
	OUTFILE = "G:\Shared\Customer Success\Autos_Customer_Success" 
	DBMS = EXCELCS 
	REPLACE; /* permite reemplazar/actualizar el archivo Excel */
RUN;


/*------------------------------------------------------------------*/
/* Ejemplo 3: el motor es 'XLSX'. 									*/
/* Disponible a partir de SAS 9.3M1									*/
/* Fue pensado para las versiones de Excel a partir de Excel 2007.	*/
/* Es práctico aunque no tiene algunas de las posibilidades de 		*/
/* los anteriores.													*/
/*------------------------------------------------------------------*/

PROC EXPORT DATA = sashelp.cars 
	OUTFILE = "G:\Shared\Customer Success\Autos_Customer_Success" 
	DBMS = XLSX 
	REPLACE; /* permite reemplazar/actualizar el archivo Excel */
	sheet="Autos";
RUN;


/*------------------------------------------------------------------*/
/* Ejemplo 4: exporta un conjunto de datos SAS a varias hojas de un	*/
/* mismo archivo Excel. 											*/
/* Agrega un filtro, selecciona columnas y las renombra.			*/
/*------------------------------------------------------------------*/

/* Etapa 1: Crea una hoja con la tabla completa */
proc export data=sashelp.cars     
	(keep=Make Model Type Origin /* guarda estas 4 variables solamente */
	rename=(Make=Marca Model=Modelo Type=Tipo Origin=Origen)) /* renombra las 4 variables */
	outfile="G:\Shared\Customer Success\Autos_en hojas"
	dbms=xlsx
	replace;
	sheet="Todos los orígenes";
run;

/* Etapa 2: Crea tres hojas nuevas con las tablas filtradas por origen */
/* Hoja 'Europa' */
proc export data=sashelp.cars     
	(where=(Origen="Europe")   /* Filtro sobre la variable 'Origin' */
								/* ¡Atención! Hay que escribir 'Origen' y no 'Origin' 
								porque esta variable está renombrada (ver más abajo en 'rename=')*/
	keep=Make Model Type Origin /* incluir 'Origin' solamente para controlar el resultado */
	rename=(Make=Marca Model=Modelo Type=Tipo Origin=Origen))
	outfile="G:\Shared\Customer Success\Autos_en hojas"
	dbms=xlsx
	replace;
	sheet="Origen Europa";
run;

/* Hoja 'Asia' */
proc export data=sashelp.cars     
	(where=(Origen="Asia")   /* Filtro sobre la variable 'Origin' */
								/* ¡Atención! Hay que escribir 'Origen' y no 'Origin' 
								porque esta variable está renombrada (ver más abajo en 'rename=')*/
	keep=Make Model Type Origin /* incluir 'Origin' solamente para controlar el resultado */
	rename=(Make=Marca Model=Modelo Type=Tipo Origin=Origen))
	outfile="G:\Shared\Customer Success\Autos_en hojas"
	dbms=xlsx
	replace;
	sheet="Origen Asia";
run;

/* Hoja 'USA' */
proc export data=sashelp.cars     
	(where=(Origen="USA")   /* Filtro sobre la variable 'Origin' */								
							 /* ¡Atención! Hay que escribir 'Origen' y no 'Origin' 
								porque esta variable está renombrada (ver más abajo en 'rename=')*/
	keep=Make Model Type Origin /* agregar 'Origin' solamente para controlar el resultado */
	rename=(Make=Marca Model=Modelo Type=Tipo Origin=Origen))
	outfile="G:\Shared\Customer Success\Autos_en hojas"
	dbms=xlsx
	replace;
	sheet="Origen USA";
run;


/*------------------------------------------------------------------*/
/* Ejemplo 5: exporta un conjunto de datos SAS, uno con etiquetas y */
/* otro sin etiquetas, a dos hojas de un archivo Excel.				*/
/*------------------------------------------------------------------*/

/* Sin etiquetas */
proc export data=sashelp.cars
	(keep=EngineSize Length MPG_City MPG_Highway)
	outfile="G:\Shared\Customer Success\Autos_etiquetas"
	dbms=xlsx
	replace;
	sheet="Nombres de variables";
run;

/* Con etiquetas */
proc export data=sashelp.cars
	(keep=EngineSize Length MPG_City MPG_Highway)
	outfile="G:\Shared\Customer Success\Autos_etiquetas"
	dbms=xlsx
	replace
	label; /* etiquetas de variables */
	sheet="Etiquetas de variables";
run;

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

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

Article Labels
Article Tags
Contributors