1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
FILENAME cmds DDE 'excel|system';
DATA _null_;
FILE cmds;
put '[close("C:\export_excel.xls")]';
run;
filename cmds clear;
PROC EXPORT DATA=export
OUTFILE="C:\export_excel.xls"
DBMS=excel
REPLACE;
options noxwait noxsync;
run;
ID = open ('export');
N=attrn(ID,'NVARS');
NOBS=attrn(ID,'NOBS');
M=trim(left(N));
hostcl = loadclass('sashelp.fsp.hauto');
call send(hostcl, '_NEW_', excelobj, 0,'Excel.Application');
call send(excelobj, '_Setproperty', 'Visible', 'true');
call send(excelobj,'_getproperty','Workbooks',wbsobj);
call send(wbsobj,'_do','open',"C:\export_excel.xls");
call send(excelobj, '_GET_PROPERTY_', 'ActiveSheet',wsobj1);
call send(excelobj,'_GET_PROPERTY_', 'ActiveWorkbook',awbobj1);
/*
call send(wbsobj,'_do','Add');
call send(excelobj, '_GET_PROPERTY_', 'ActiveSheet',wsobj);
call send(excelobj,'_GET_PROPERTY_', 'ActiveWorkbook',awbobj);
*/
do col=1 to N;
/*** Libellés de colonnes ***/
LABEL=varlabel(ID,col);
PUT LABEL=;
call send(wsobj1,'_compute','Cells',1,col,retcell);
call send(retcell,'_compute','Font',retfont);
call send(retfont,'_set_property_','name',"GILL SANS MT");
call send(retfont,'_set_property_','size',"8");
call send(retfont,'_set_property_','Fontstyle',"Gras");
call send(retfont,'_set_property_','colorindex',"9");
call send(retcell,'_Setproperty','Value',LABEL);
/*** Ajustement des colonnes ***/
Call send(wsobj1,'_compute','columns',col,retcol2);
call send(retcol2,'_compute','Font',retfont);
call send(retfont,'_set_property_','name',"Trebuchet MS");
call send(retfont,'_set_property_','Size',"8");
Call send(retcol2,'_do','Select');
Call send(retcol2,'_do','Autofit');
if varname(ID,col)="total" then do;
call send(retcol2,'_SET_PROPERTY_','Numberformat',"# ##0,00");
end;
end;
Call send(wsobj1,'_compute','cells',2,1,retcell);
call send(retcell,'_do','Select');
call send(excelobj,'_GET_PROPERTY_', 'ActiveWindow',awinobj);
call send(awinobj,'_set_property_','FreezePanes', 1 );
call send(excelobj,'_GET_PROPERTY_', 'ActiveWorkbook', awbobj1);
call send(awbobj1, '_DO', 'Save');
call send(awbobj1, '_DO', 'Close');
call send(excelobj, '_TERM_');
rc=close(ID);
x "'C:\export_excel.xls'"; |
Partager