2017-02-07 41 views
-1

我有20个SAS数据集,需要将它们导出到不同的Excel表单。我创建了一个SAS宏来完成这项工作。但是,我注意到输出结尾处有空白。SAS DDE导出Excel空白空间

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

因此,实际数据中没有空格,只有在将变量导出为ex​​cel后才出现。我仍然包含下面的代码来摆脱这些空白

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

嗨Reeza,我编辑了代码与DDE连接字符串 – ckp

+0

您忘记数据了。 –

回答

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的分隔符更改为tab,并且PUT语句中的格式列表更改为:从'09'x开始。我会留给你来研究LIST PUT的细微差别。