Archive for the ‘proc template’ Category

h1

5 minutes pour créer des fichiers .xls personnalisés avec proc template et ods

septembre 12, 2015

Découvrez mon nouveau site consacrée à la programmation en SAS programmeur-pro.com et téléchargez gratuitement mon guide pour personnaliser le rendu de vos fichiers .xls, .doc et .pdf.

En moins de 5 minutes, vous êtes capable de créer un template personnalisé et l’utilisé avec ODS TAGSETS.EXCELXP, ODS RTF, ODS PDF. Ce document de référence est accessible à tous : débutant et programmeur expérimenté.

h1

Protégé : Passer d’un format A4 à un format LETTRE

mars 1, 2010

Cet article est protégé par un mot de passe. Pour le lire, veuillez saisir votre mot de passe ci-dessous :

h1

Personnaliser l’apparence des titres et pieds-de-page dans un fichier.xls (ODS TAGSETS.EXCELXP et PROC TEMPLATE)

juillet 14, 2009

Après vous avoir présenté les options EMBEDDED_TITLES et EMBEDDED_FOOTNOTES dans l’article : Ajouter les titres et pieds-de-page dans une feuille de calcul du fichier .xls, je vous propose de personnaliser l’apparence de vos titres au moyen d’un nouveau style créé dans une instruction PROC TEMPLATE.

1. Créer un style personnaliser pour ses titres et pieds de page

Le nouveau style s’appelle XLS_TITL. Comme base, nous prenons un style existant sous SAS : STYLES.DEFAULT et faisont quelques modification au niveau des titres et pieds-de-page.

proc template;
define style styles.xls_titl;
parent=styles.rtf;

style systemtitle from systemtitle /
background=transparent
foreground=#000000
font_style=roman
font_weight = medium
font_size=18pt
font_face=‘Arial’;

style systemfooter from systemfooter/
background=transparent
foreground=#000000
font_style=roman
font_weight = medium
font_size=14pt
font_face=‘Arial’;

end;
run;

  • BACKGROUND modifie la couleur de font des cellules (voir l’article : choisir ses couleurs sous SAS). Notez que le mot TRANSPARENT ne fonctionne pas avec la version 1.86 de TAGSETS.EXCELXP mais avec certaines versions plus anciennes.
  • FOREGROUND modifie la couleur du texte
  • FONT_STYLE empêche l’inclinaison par défaut (enlever l’italique : roman, mettre en italic : italic)
  • FONT_WEIGHT enlève la côté gras présent par défaut (enlever les gras : medium, mettre en gras : bold)
  • FONT_SIZE défini la taille des caractères
  • FONT_FACE liste les polices à utiliser. Si plusieurs polices sont listées entre guillemets, la première disponible sur l’ordinateur sera retenue.

2. Appeler le style dans l’instruction ODS TAGSETS.EXCELXP

L’option STYLE= a été ajouté dans la première instruction ODS TAGSETS.EXCELXP . Elle est suivie du nom du style créé préalablement. Cela donne STYLE=XLS_TITL.

ods listing close;
ods tagsets.excelxp file=‘C:/sasref/class.xls’ style=xls_titl
options(embedded_titles=‘yes’
embedded_footnotes=‘yes’);

title ‘Titre’;
footnote ‘Pied’;
ods tagsets.excelxp;

proc report data=sashelp.class nowd;
columns name age;
define name/display ‘Nom’;
define age /display ‘Age’;
run;

ods tagsets.excelxp close;
ods listing;

Pour le reste des explications concernant cette syntaxe, reportez-vous à l’article de la semaine dernière.

3. Voir le résultat

02_xls_title

Lectures complémentaires :

h1

Mettre à jour ses TAGSETS pour EXCELXP

juin 4, 2009

Créer un fichier XML ouvrable avec Excel est possible avec l’ODS TAGSETS.EXCELXP de SAS. Il est important de disposer des dernière mises à jour des tagsets de EXCELXP pour utiliser son potentiel. Quelle version utilisez-vous actuellement ? Comment faire la mise à jour ?

1. Quelle version de TAGSETS.EXCELXP utilisez-vous ?

Pour connaître la version de TAGSETS.EXCELXP que vous utilisez, consultez la log après avoir exécuté ce PROC TEMPLATE.

proc template;
source tagsets.excelxp;
run;

2.  Comment faire les mises à jour ?

Allez sur la page http://support.sas.com/rnd/base/ods/odsmarkup/ pour trouver le code à exécuter dans SAS.

Par exemple, pour la mise à jour 1.86 (15 avril 2008), copiez dans votre éditeur SAS le code http://support.sas.com/rnd/base/ods/odsmarkup/excltags.tpl et exécutez-le.

En soumettant une nouvelle fois la procédure PROC TEMPLATE, la log nous indique que la version 1.86 est celle actuellement en place.

tagsets_version_v1_86

h1

Des marges personnalisées pour vos rapports RTF

juin 30, 2008

Les documents lus par Word peuvent être sauvegardés au format RTF. SAS crée ce type de document en encadrant les tableaux et graphiques de la syntaxe ODS RTF (Output Delivery System). Par défaut, les marges sont de 0,63 cm (soit 0.25 inches) pour chacun des quatre côtés. Pour les changer, il faut procéder en 3 étapes : définir un template, changer les valeurs des marges et appeler le template.

1. Le coin des curieux

Un template est en programmation SAS ce qu’un patron est en couture. Il permet de définir l’apparence générale du travail final. Un template est défini en SAS avec la procédure PROC TEMPLATE. Pour distinguer les patrons pour les pantalons de ceux pour les chemisiers, des noms sont donnés à ces patrons. En SAS, ces noms sont appelés de STYLES.

Avec l’instruction LIST STYLES, vous affichez la liste des styles actuellement disponibles dans la fenêtre OUTPUT. Vous verrez notamment STYLES.RTF.

proc template;
   list styles;
run;

Pour voir le contenu de ce style dans la fenêtre LOG, il faut citer son nom dans l’instruction SOURCE.

proc template;
   source styles.rtf;
run;

Vous pourrez notamment repérer dans la LOG la partie sur les marges :

replace Body from Document
   « Controls the Body file. » /
   bottommargin = 0.25in
   topmargin = 0.25in
   rightmargin = 0.25in
   leftmargin = 0.25in;

2. Les trois étapes de base

2.1 Définir un template où les marges ne sont pas définies

Dans cet exemple, le nouveau template s’appelle STYLES.SASREF_RTF. Il est défini à partir du style STYLES.RTF. Les marges sont définies dans BODY FROM DOCUMENT. Une valeur non définie est assignée aux marges grâce au mot _UNDEF_ (undefined). Pour terminer la définition du template, une instruction END est ajoutée.

proc template;
   define style styles.sasref_rtf;
      parent = styles.rtf;
      replace body from document /
          bottommargin = _undef_
          topmargin = _undef_
          rightmargin = _undef_
          leftmargin = _undef_;
   end;
run;

L’ODS LISTING permet de désactiver la sortie vers la fenêtre OUTPUT dans un premier temps puis de la réactiver. Le mot-clé OUTPUT étant déjà pris au moment de la création de l’instruction ODS LISTING, SAS a choisi le mot-clé LISTING pour désigner la fenêtre OUTPUT.

2.2 Changer les mesures avec l’instruction OPTIONS

A présent, il est possible de modifier les marges avec l’instruction OPTIONS.

options bottommargin = 1.5 cm
        topmargin    = 1.5 cm
        rightmargin  = 2 cm
        leftmargin   = 2.5 cm;

2.3 Appeler le template nouvellement créé

Une option STYLE= est ajoutée à l’instruction ODS RTF. Le nom du template nouvellement créé y est assigné.

ods listing close;
ods rtf file  = ‘C:/sasref/margin_eg.rtf’
        style = styles.sasref_rtf;
   proc print data=sashelp.class;
   run;
ods rtf close;
ods listing;

3. Etape de nettoyage

Pour terminer, si le template n’est pas amené à être réutilisé, l’instruction DELETE permettra de le supprimer.

proc template;
   delete styles.sasref_rtf;
run;

h1

Mes 1ers pas avec ODS TAGSETS.EXCELXP (2/3)

mai 19, 2008

Sous SAS, l’ODS TAGSETS.EXCELXP est une alternative au PROC EXPORT. Dans une première partie, vous avez vu comment modifier la largeur d’une colonne, gérer l’alignement des valeurs textes et former une cellule unique servant de titre à plusieurs colonnes, le tout avec la syntaxe de proc report. Maintenant vous allez découvrir comment modifier les couleurs, polices de caractères, etc. en créant un nouveau template.

1. La structure de base de PROC TEMPLATE

Une autre particularité que l’on rencontrera dans le fichier Excel, c’est la présence de la couleur grise pour le fond ces cellules ayant des données, une couleur bleuté pour le texte des cellules contenant le nom des variables, etc.

Pour altérer ces couleurs, disons remettre du blanc en fond et du texte en noir, on va créer un nouveau template à partir d’un existant. Il suffira alors de modifier les quelques paramètres qui nous intéresse.

La structure de base du PROC TEMPLATE est la suivante :

proc template;
   define style styles.vero_xls;
   parent=style.default;
   *style x from x /…;
run;

J’ai donné le nom vero_xls à ce nouveau STYLE. Vous pouvez choisir le nom qui vous plaira. L’important est de se référer au même nom par la suite. 

2. Les instructions STYLE de PROC TEMPLATE

Il existe plusieurs instructions STYLE, selon qu’il s’agisse :

  • de la partie non couverte par les données : style Table from Table
  • de la partie couverte par les noms de colonnes : style Header from Header
  • de la partie couverte par le nom des lignes (dans un proc print, les valeurs de la variable obs) : style RowHeader from RowHeader
  • de la partie couverte par les données : style Data from Data
  • de l’apparence de la page A4 d’impression : style Body from Body

Voicic trois autres styles :

  •    style SystemTitle from SystemTitle /…;
  •    style SystemFooter from SystemFooter /…;
  •    style SysTitleAndFooterContainer from SysTitleAndFooterContainer /…;

3. Les options des instructions STYLE

Les options sont situées après la barre inclinée (slash /). Les valeurs prises par ces options sont notées entre guillemets.

 Les options les plus courantes sont :

  • FOREGROUND = (couleur du texte). Ici, on choisira le mot ‘black’ entre guillemets.
  • BACKGROUND = (couleur des cellules). Ici, on choisira ‘white’.
  • FONT_SIZE = (la taille du texte). Ici, on choisira 1.5 par exemple.
  • FONT_FACE = (la ou les polices de caractères). Ici, on choisi ‘Courier’. Mais on peut aussi opter pour ‘Courier,Arial’. Ainsi si la police Courier n’est pas disponible, Arial sera le second choix.

Deux autres options du langage courant

  • FONT_WEIGHT= (mette en gras). La valeur BOLD sert à mettre en gras
  • FONT_STYLE= (mettre en italique ou non). La valeur ITALIC met en italique tandis que ROMAN fait l’inverse.

Agir dur les bordures des cellules :

  • BORDER_COLOR= (couleur de la bordure)
  • BORDER_WIDTH= (largeur de la bordure)

Agir sur les marges du document A4.

  • LEFTMARGIN = (marge de gauche)
  • RIGHTMARGIN = (marge de droite)
  • TOPMARGIN = (marge du haut)
  • BOTTOMMARGIN = (marge du bas)

Note : Une liste des différents styles est disponible sur ce forum : http://www.tek-tips.com/viewthread.cfm?qid=1178234&page=1.

4. Faire référence au nouveau template

Pour que ce template soit lu à la place de celui par défaut, on ajoutera STYLE=nom_du_nouveau_template dans l’instruction ODS TAGSETS.EXCELXP de début.

ods tagsets.excelxp file  = ‘C:/excel/mon_nouveau_fichier.xls’
                    style = vero_xls;
proc report …;
run;
ods tagsets.excelxp close;

Après avoir vu les actions menées au niveau du PROC REPORT et du PROC TEMPLATE pour personnaliser son fichier Excel, vous verrez dans le troisième et dernier article sur « Mes premiers pas avec ODS TAGSETS.EXCELXP », lundi prochain, les options disponibles dans l’instruction ODS.