输出数据到Excel表格包含空格

时间:2015-07-17 09:22:15

标签: sas

data _null_;
    call symputx('ts','a b');
run;

proc export data=have
    outfile='path\file.xlsx';
    sheet="&ts.";
run;

但是这会创建一个名为a_b的工作表(原始空格将替换为_

怎么会发生这种情况?

2 个答案:

答案 0 :(得分:4)

这与SAS的proc export中的工作方式有关。它在幕后所做的是创建一个libname,然后创建一个数据集。在正常(validmemname=compat)规则下,数据集名称中可能没有空格。有一个选项(validmemname=extend)告诉SAS允许空格(然后使用named literal访问空格,即"a b"n(n告诉SAS它是一个名字),但它似乎proc export(和libname本身)不听。

但是,在目前,有一种解决方法:如果您使用的是SAS 9.4 TS1M1或更高版本,则可以在导出中使用dbms=xlsx。这使用了与默认excel(使用Microsoft的JET引擎)不同的引擎,并且它可以轻松地允许空间。

答案 1 :(得分:0)

只需使用DBMS = XLSX选项,您就可以在工作表名称中包含空格。

proc export data=sashelp.class 
    outfile='class.xlsx'
    dbms=xlsx 
;
    sheet="A B";
run;