Con el comando "proc export" de SAS podemos generar una salida Excel, pero no un gráfico dinámico. Para ello, debemos crear una macro desde Excel, que elabora el gráfico dinámico a partir de la tabla XLSX. Una vez realizada esta macro, ya sí que podemos llamarla desde el código SAS. Os pongo un ejemplo:
proc export data=ruta.tablaexcel.xlsx"
dbms=excel replace;
sheet="tabla1";
run;
/* Automatización del gráfico */
options noxwait noxsync;
data _null_;
rc=system('start excel');
run;
data _null_;
x=sleep(10);
run;
filename CMDS DDE 'EXCEL|SYSTEM';
data _null_;
file CMDS;
put "[open(""ruta.tablaexcel.xlsx"")]";
run;
data _null_;
file CMDS;
put '[RUN("personal.xlsb!macrografico")]';
run;
dbms=excel replace;
sheet="tabla1";
run;
/* Automatización del gráfico */
options noxwait noxsync;
data _null_;
rc=system('start excel');
run;
data _null_;
x=sleep(10);
run;
filename CMDS DDE 'EXCEL|SYSTEM';
data _null_;
file CMDS;
put "[open(""ruta.tablaexcel.xlsx"")]";
run;
data _null_;
file CMDS;
put '[RUN("personal.xlsb!macrografico")]';
run;
Repasamos los pasos de este código: con “proc export” exportamos la tabla a formato Excel; con “rc=system(‘start excel’)” llamamos a Excel; con “sleep(10)” esperamos diez segundos mientras se escribe la tabla (en mi ejemplo es una tabla de más de 160.000 registros); y, con “[RUN("personal.xlsb!macrografico")]” lanzamos la macro macrografico, que crea el gráfico dinámico.
Espero que os sirva. No olvidéis compartir.
No hay comentarios:
Publicar un comentario