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

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
Article Labels
Article Tags
Contributors