Pratique de Sas Windows 9.2... Volume 1 - Ined
Pratique de Sas Windows 9.2... Volume 1 - Ined
Pratique de Sas Windows 9.2... Volume 1 - Ined
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
9.8 La <strong>de</strong>stination tagsets.excelxp<br />
Dans http://support.sas.com/rnd/base/ods/scratch/ods-tips.pdf la feuille mémento générale sur l’ODS,<br />
outre la <strong>de</strong>stination XML, qui sera vue dans le volume 2, nous croisons à nouveau la catégorie <strong>de</strong> template <strong>de</strong><br />
type tagsets déjà présenté dans le graphique <strong>de</strong> Cynthia Zen<strong>de</strong>r à la page 115.<br />
Ce type <strong>de</strong> template ne se <strong>de</strong>stine habituellement pas à l’édition ou la publication, mais procédant d’une autre<br />
manière (basée sur <strong>de</strong>s « events »), on produira généralement <strong>de</strong>s fichiers d’un autre type à balises/markup: voir<br />
par exemple en 2006 « The Beginners Gui<strong>de</strong> to ODS MARKUP: Don't Panic!» <strong>de</strong> Eric Gebhart<br />
http://www.nesug.org/proceedings/nesug06/io/io22.pdf .<br />
Le tagsets.ExcelXP, en particulier, a déjà une histoire et a été peaufiné au fil <strong>de</strong>s ans <strong>de</strong>puis 2002 : voir<br />
http://support.sas.com/rnd/base/ods/odsmarkup/pandp.html.<br />
Par ce tagset, <strong>Sas</strong> convertira un objet <strong>de</strong> sortie en fichier XML lisible par Excel et OpenOffice-Calc. Vous<br />
pourrez ainsi exporter directement, vers plusieurs feuilles dans un classeur, différents output objects non<br />
graphiques, et cela marche même sous Linux.<br />
Ce tagset s’enrichit d’options propres à Excel <strong>de</strong> telle sorte que la présentation <strong>de</strong> ce qui a été exporté dans<br />
Excel sera très soignée : pour les découvrir vous pourrez en tourner un à vi<strong>de</strong>.<br />
ods tagsets.ExcelXP file="d:\tabsas\xptag1.xml" style=ocean options(doc="help");<br />
ods tagsets.ExcelXP close;<br />
L’actuelle version du tagset est la 1.94 livrée avec la <strong>9.2.</strong>2, mais vous pouvez éventuellement pour <strong>de</strong>s questions<br />
<strong>de</strong> compatibilité en utiliser une plus ancienne ou celle qui « marchait » en 9.1.3 la version 1.86 d’avril 2008.<br />
Il suffit d’ouvrir le bon fichier très long en général au suffixe .tpl ou .sas ou .txt sur le site <strong>de</strong> <strong>Sas</strong> et <strong>de</strong><br />
l’exécuter dans la fenêtre programme. http://support.sas.com/rnd/base/ods/odsmarkup/in<strong>de</strong>x.html#download<br />
Aux <strong>de</strong>rnières nouvelles (juillet 2010), nous en sommes à la version 1.114.<br />
Ce tagset sera stocké dans l’entrepôt sasuser.templat et comme à l’exécution d’une instruction ods<br />
tagsets.ExcelXP, c’est d’abord ce magasin qui est consulté, cette version sera donc exécutée. En effet, on a<br />
par défaut un ods path sasuser.templat(update) sashelp.tmplmst(read);<br />
Vous auriez pu aussi ne faire qu’un appel temporaire à ce template une fois celui-ci stocké sur votre disque en<br />
insérant simplement %inclu<strong>de</strong> "d:\réserve\excltags.tpl";<br />
Mais, il aurait aussi été possible <strong>de</strong> se créer son propre entrepôt pour y accumuler ses futurs templates :<br />
libname xxx "d:\templib"<br />
ods path(prepend) xxx.templat(update);<br />
%inclu<strong>de</strong> "c:\myfiles\excltags.tpl";<br />
ods path(prepend) xxx.templat(read);<br />
*éventuellement en lecture pour se protéger ensuite prepend force à le mettre en première position;<br />
Comme j’ai utilisé personnellement pour notre test, la première solution, il sera nécessaire <strong>de</strong> passer un ods<br />
path verify ; pour pouvoir utiliser le tagsets 1.94 <strong>de</strong> la <strong>9.2.</strong>2 du sashelp.tmplmst, car la version 1.86 a été<br />
stockée dans le sasuser.templat<br />
Résumé visuel <strong>de</strong>s règles pour les chemins <strong>de</strong>s magasins<br />
libname mag "d:\ods92";*adresse <strong>de</strong> mon magasin <strong>de</strong> template ;<br />
ods path mag.templat(update) sashelp.tmplmst(read);<br />
ods path show;* 1. MAG.TEMPLAT(UPDATE) 2. SASHELP.TMPLMST(READ);<br />
ods path(append) sasuser.templat(read) ;<br />
ods path show;<br />
* 1. MAG.TEMPLAT(UPDATE) 2. SASHELP.TMPLMST(READ) 3. SASUSER.TEMPLAT(READ);<br />
ods path verify ;<br />
ods path show ;*1. SASHELP.TMPLMST(READ);<br />
ods path reset ;<br />
ods path show ;*1. SASUSER.TEMPLAT(UPDATE) 2. SASHELP.TMPLMST(READ);<br />
* il existe enfin aussi une option <strong>de</strong> path (remove) non utilisée ici.<br />
Nous voilà donc prêt à travailler avec votre bonne version <strong>de</strong> tagset.<br />
ods tagsets.ExcelXP file="d:\tabsas\xptag1.xml" style=ocean;<br />
proc univariate data=sashelp.orsales;<br />
var profit;run;<br />
ods tagsets.ExcelXP close;<br />
produira un classeur avec une feuille par objet tabulaire produit (voir ods trace du proc univariate).<br />
INED Wielki 170