|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Bonjour,
j'édite des tableaux dans un fichier XML avec ods tagsets.excelxp. Ca se passe très bien pour des entiers, en revanche les nombres à virgule sont exportés en XML sous forme de strings. Quand j'édite le fichier XML avec un éditeur de texte je vois pour les entiers par exemple : Code :
<Cell ss:StyleID="data__r1" ss:INDEX="2"><DATA ss:Type="Number">942</Data></Cell> Code :
<Cell ss:StyleID="data__r1" ss:MergeDown="1" ss:INDEX="2"><DATA ss:Type="String">17,69</Data></Cell> J'essaie d'utiliser tagattr dans style mais cela ne change rien. Auriez-vous une idée ? Merci. Code :
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Bonjour Filippo,
As-tu essayé de remplacer des points par des virgules avant d'éditer? |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour Filippo.
Trop de zèle dans ton programme : pour l'ODS TAGSETS, il faut laisser les nombres comme les édite SAS par défaut. Supprime ton format NUMX dans la proc TABULATE, et tout ira déjà mieux. Les TAGATTR ne seront utiles (dans l'instruction TABLE d'ailleurs plutôt que CLASSLEV, sauf s'il s'agit de formater les valeurs de tes variables de groupe) que si tu veux des séparateurs de milliers en bonus. En fait, Excel attend dans le XML des nombres écrits comme 1234.56 et ensuite les affiche correctement selon les préférences régionales. Bon courage. Olivier |
|
|
10
|
|
|
#4 |
|
Membre habitué
![]() Géraldine CADE DESCHAMPSSupport Clients SAS (France et Europe) Inscription : février 2010 Messages : 62 ![]() |
Bonjour,
J'ai 2 pistes : 1/ tester cette syntaxe : Code :
var air hotel/style(DATA)={tagattr="format:#,###"}; - télécharger le dernier tagset (actuellement 1.116) http://support.sas.com/rnd/base/ods/odsmarkup/ - et utiliser decimal_separator : Code :
ods tagsets.excelxp file="c:\temp.xls" options(decimal_separator=',' ); |
|
|
00
|
|
|
#5 | |
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Je vous remercie pour vos réponses.
J'ai été amené à utiliser le format NUMx10.2 car Excel utilise la virgule comme séparateur décimal (et SAS le point). Comme j'édite pas mal de tableaux dans différents onglets, je cherchais à éviter de devoir faire un copier-remplacer des points en virgules dans tout le classeur. La ligne Code :
var &MyVar1 &MyVar2 /style(DATA)={tagattr="format:#,###"}; Citation:
J'ai aussi essayé différents formats tagattr avec des virgules. Je continue de chercher.
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|
|
|
00
|
|
|
#6 | ||
|
Membre confirmé
![]() Inscription : janvier 2010 Messages : 185 ![]() |
Bonjour Filippo
J'utilise les tagattrs suivant avec le tagset Excel XP tagset (SAS 9.1.3, v1.47, 01/10/07 vcd) : Code :
Le problème du tagset (en particulier Excel) est que son code est mouvant (d'une version à l'autre), qu'il est bogué, qu'il est fait pour excels en langue US et qu'il est assez limité (merge across, hauteur de ligne, etc). Mais l'avantage est que le code est ouvert et qu'on peut le corriger et l'augmenter en introduisant de nouvelles fonctionnalités, via les tagattrs notamment. |
||
|
|
10
|
|
|
#7 |
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Merci SASADM,
Excel ne peut pas ouvrir le fichier à cause "d'erreurs". En éditant avec un éditeur de texte je vois que les décimaux sont avec un style XML alphanumérique.
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Ce que je voulais dire Filippo, c'est qu'il y a un décalage dans l'ODS ExcelXp entre ce qu'on voit dans les sorties SAS habituelles (fenêtre Output, ODS PDF, RTF, HTML) et ce qu'on voudrait voir dans le classeur Excel.
Je suis bien d'accord que d'habitude, on mettrait un NUMX. pour avoir des virgules. Dans le cas particulier de l'ODS ExcelXp, il ne faut pas en mettre (laisse les formats par défaut de SAS) et jouer plutôt sur les TAGATTR si nécessaire (mais par défaut là encore, ça devrait déjà avoir une bonne tête). |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Merci Olivier,
par défaut (sans format particulier) le fichier XML est créé avec un point comme séparateur décimal; sous Excel les cellules avec des points sont considérées comme des string. Il faudrait simplement une option générale qui dit à SAS de mettre une virgule comme séparateur décimal. J'essaie de jouer sur mais ça ne marche pas.
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|
|
00
|
|
|
#10 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Bonjour, je crois que c'est loption qu'il faut utiliser
|
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Merci s_a_m,
le fichier XML contient toujours des points comme séparateurs décimaux.
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() Inscription : janvier 2010 Messages : 185 ![]() |
Quelle version du tagset utilises tu ?
|
|
|
00
|
|
|
#13 | |||
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Code :
Citation:
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|||
|
|
00
|
|
|
#14 | ||||
|
Membre confirmé
![]() Inscription : janvier 2010 Messages : 185 ![]() |
Voici le contenu d'un fichier XML correctement lu par excel:
Code :
Le style s69 : Code :
|
||||
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Oui en fait pour les décimaux j'obtiens :
Alors que je devrais avoir :
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|
|
00
|
|
|
#16 | |||
|
Membre confirmé
![]() Inscription : janvier 2010 Messages : 185 ![]() |
Citation:
Et en l'executant avec l'option options(doc='help') ? |
|||
|
|
00
|
|
|
#17 | |
|
Membre confirmé
![]() Inscription : janvier 2010 Messages : 185 ![]() |
Citation:
|
|
|
|
00
|
|
|
#18 | ||
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Je viens de trouver !
Code :
Je vous remercie tous pour vos réponses.
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
||
|
|
00
|
|
|
#19 |
|
Membre éclairé
![]() Philippe Statisticien Inscription : mai 2004 Messages : 654 ![]() |
Il y avait encore plus simple.
Aucun format ni option dans la proc tabulate mais l'option générique suivante : Et ça marche.
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit" |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com