2017-02-07 25 views
-1

У меня есть 20 наборов данных SAS и вам необходимо экспортировать их на разные листы excel. Я создал макрос SAS для выполнения этой задачи. Тем не менее, я заметил пробел в конце вывода.SAS DDE Экспорт пробелов Excel

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

Как таковой, не существует пробел в фактических данных и появляется только после экспорта переменных отличиться. Я все еще включил следующий код, чтобы избавиться от этих заготовок

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; 

Я ценю вашу помощь.

+0

Опубликуйте использованный код, включая часть экспорта и строку подключения DDE. – Reeza

+0

Hi Reeza, я отредактировал код с помощью строки подключения DDE – ckp

+0

Вы забыли данные HAVE. –

ответ

0

Я смог воспроизвести конечный бланк в каждом поле с этим. Код, который вы опубликовали, не работал, начиная с отсутствующих данных HAVE и смешивая неявные и явные массивы. Даже этот шаг с COMPRESS действительно сработал, это не решило бы проблему.

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

Если вы слегка измените инструкцию PUT и FILE, вы должны получить правильный результат.

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

Примечание Разделитель для списка пут изменяется на вкладке и список форматов в операторе PUT изменяется на: от «09'x. Я оставлю это вам, чтобы исследовать нюансы LIST PUT.