2013-08-15 2 views
0

Я просто хочу экспортировать набор данных SAS в предварительно созданный шаблон Excel.SAS DDE не корректно форматирует вывод в Excel

Первые 6 переменных моего набора данных (который является файл .WPD) выглядит следующим образом:

StartDate  EndDate product_code Description    Leaflet Media 
04-Jul-13 07-Jul-13 256554 BUTCHER BEEF 1PK (1 KGM)  54x10  3 

я в настоящее время:

options noxwait noxsync; 
x '"c:\Template.xls"'; /* <--excel template to use*/ 
filename template dde 'excel|Leaflets!r6c1:r183c67'; /*put data in rows 3 to 183 in leaflets sheet*/ 


data LEAF.results; set LEAF.results; 
file template ; 
    put StartDate EndDate product_code Description Leaflet Media 
     /*and the remaining 61 variables*/  
run; 

работы процедуры DDE и открывает лист первенствовать, но данные не отформатированы правильно в excel и выглядят так:

StartDate  EndDate  Product code Description Leaflet  Media 
04 July 2013 07 July 2013 256554  BUTCHER   BEEF  1PK 

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

Также есть способ вывода этого набора данных в мой шаблон excel, а затем сохранить шаблон как другое имя файла в другом месте на моем диске c?

Спасибо!

ответ

1

Попробуйте изменить file template ;, чтобы использовать разделитель tab, т.е. file template dlm='09'x;;

Также в названии файла добавьте 'notab': filename template dde 'excel | Листовки! R6c1: r183c67' notab;

+0

спасибо за это, я попытался это раньше, и выход аналогичен не указывая не разделителем. Я пробовал различные разделители, и ни один из них не работает:/ –

+0

Добавлено еще одно предложение. – Joe

+0

Еще раз. Просто попробовал свое предложение выше, и это, похоже, не имело никакого значения. Похоже, как только он встречается с отсутствующим значением, он начинает новую строку. Не знаю, почему это происходит, есть ли способ, который я могу сказать, чтобы обрабатывать нули как пробелы, а не как конец строки? Благодаря! –

2

После попытки каждой опции DDE под солнцем я, наконец, споткнулся о LRECL.

Так,

options noxwait noxsync; 
x '"c:\Template.xls"'; /* <--excel template to use*/ 
filename template dde 'excel|Leaflets!r6c1:r183c67' notab **LRECL=3000**; /*put data in rows 6 to 183 in leaflets sheet*/ 


data LEAF.results; set LEAF.results; 
file template ; 
    put StartDate EndDate product_code Description Leaflet Media 
     /*and the remaining 61 variables*/  
run; 

Я предполагаю, что длина по умолчанию символов в каждой ячейке была слишком короткой, так что увеличение длины Разрешена означает каждая клетка не получает разделить на несколько ячеек?

источник: http://support.sas.com/resources/papers/proceedings11/003-2011.pdf

Смежные вопросы