2017-02-07 4 views
-1

J'ai 20 jeux de données SAS et j'ai besoin de les exporter vers différentes feuilles Excel. J'ai créé une macro SAS pour faire ce travail. Cependant, j'ai remarqué un espace vide à la fin de la sortie.SAS DDE Export Excel espaces

For eg: "Creative" is getting exported as "Creative ". 

En tant que tel, il n'y a pas d'espace vide dans les données réelles et apparaît seulement après l'exportation des variables à exceller. J'ai toujours inclus le code suivant pour se débarrasser de ces blancs

Filename out dde "excel|[Output.xlsm]!sheet1!r1c1:r10c25"; 

data want; 
set have; 
array vars (i) _char_; 
do i=1 to dim(vars); 
    vars(i)=compress(vars(i)); 
end; 
run; 
data _null_; 
Set want; 
file out lrecl=1000 notab; 
put 
var1-var25; 
run; 

J'apprécie votre aide.

+0

Affiche le code réellement utilisé, y compris la partie d'exportation et la chaîne de connexion DDE. – Reeza

+0

Salut Reeza, j'ai modifié le code avec la chaîne de connexion DDE – ckp

+0

Vous avez oublié les données ont. –

Répondre

0

J'ai été capable de reproduire l'ébauche arrière dans chaque champ avec ceci. Le code que vous avez posté n'a pas fonctionné en commençant par les données manquantes HAVE et en mélangeant les tableaux implicites et explicites. Même si le pas avec COMPRESS fonctionnait, cela ne réglerait pas le problème.

data _null_; 
    Set sashelp.shoes(keep=_char_ obs=19); 
    file out notab; 
    put (_char_)('09'x); 
    run; 

Si vous modifiez légèrement l'instruction PUT et FILE, vous devriez obtenir une sortie correcte.

data _null_; 
    Set sashelp.shoes(keep=_char_ obs=19); 
    file out dlm='09'x notab; 
    put (_char_)(:); 
    run; 

delimiter Avis pour mettre la liste est modifiée à l'onglet et la liste des formats dans l'instruction PUT est modifiée: de « 09'x. Je vous laisse le soin de rechercher les nuances de LIST PUT.