2013-08-15 2 views
0

SAS 데이터 세트를 미리 만들어진 Excel 템플릿으로 내보내려고합니다. 내가 현재 가지고SAS DDE가 Excel에서 올바르게 출력되지 않습니다.

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

: (A .WPD 파일입니다) 내 데이터 세트의

먼저 6 개 변수는 다음과 같다

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 개의 변수가 있으므로 informat를 사용하지 않고 개별적으로 서식을 지정하고 싶지 않을 수도 있습니다.

또한이 데이터 집합을 내 Excel 템플릿으로 출력 한 다음 내 C 드라이브의 다른 파일 이름으로 템플릿을 저장하는 방법이 있습니까?

감사합니다.

답변

1

file template ;을 변경하여 탭 구분 기호를 사용하십시오 (예 : file template dlm='09'x;).

또한 파일 이름에 'notab'을 추가하십시오. filename template dde 'Excel | Leaflets! r6c1 : r183c67'notab;

+0

덕분에, 나는이 이전 시도하고 출력에는 구분 기호를 지정하지 유사합니다. 구분 기호를 다양하게 시도했지만 아무 것도 작동하지 않는 것 같습니다 :/ –

+0

제안이 하나 더 추가되었습니다. – Joe

+0

안녕하세요. 위의 제안을 시도해 보니 차이가없는 것으로 보입니다. 누락 된 값을 발견하자마자 새로운 라인이 시작됩니다. 왜 이런 일이 일어나고 있는지, null을 공백으로 처리하고 줄의 끝으로 처리하지 않을 수있는 방법이 있습니까? 감사! –

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