如何在SAS中导出xlsx文件

时间:2017-03-22 14:35:41

标签: sas export-to-excel

以下两个导出将在我的计算机上出错(在SAS基础和SAS企业指南中):

proc  export data=  sashelp.shoes
            outfile= " D:\SAS\myfile.xlsx"
            dbms=xlsx replace;
       sheet="Shoes";
run;

proc  export data=  sashelp.class
            outfile= " D:\SAS\myfile.xlsx"
            dbms=excelcs replace;
       sheet="Class";
run;

因为这些导出分别产生以下错误:

ERROR: DBMS type XLSX not valid for export.
ERROR: DBMS type EXCELCS not valid for export.

通过浏览互联网,我认为问题是由将文件从64位SAS版本导出到32位Excel版本引起的。

我从SAS Support website下载并安装了pcfilesrv__931401__win__en__web__1.zip并希望它可以解决问题,但错误仍然会发生。

有人有其他想法吗?

规格:

Windows 64位操作系统

SAS Enterprice Guide 5.1(64位)

SAS Base 9.3(64位)

Excel 2013(32位)

修改 @Grinvydas Kareiva在他的回答中提到我需要" SAS / Access接口到PC文件"。在我从SAS支持网站下载的zip文件中运行setup.exe后,此安装向导(参见上文)。 Install Wizard

但是,当我运行proc setinit时,它不会显示在任何地方(手动更改网站编号和名称):

Site name:    'xxxxxxx'.
Site number:  xxxxxx.
Expiration:   01SEP2017.
Grace Period:  62 days (ending 02NOV2017).
Warning Period: 31 days (ending 03DEC2017).
System birthday:   01NOV2016.
Operating System:   WX64_WKS.
Product expiration dates:
---Base SAS Software                                                                                    01SEP2017  
---SAS/STAT                                                                                             01SEP2017  
---SAS/GRAPH                                                                                            01SEP2017  
---SAS Enterprise Guide                                                                                 01SEP2017  
---SAS Workspace Server for Local Access                                                                01SEP2017

我做错了吗?

3 个答案:

答案 0 :(得分:1)

首先,您需要获得许可的“PC / ACCESS接口到PC文件”。 您可以在提交后在日志中检查

proc setinit;
run;

如果你有这个界面

,其中一个应该有效
dbms=excel or dbms=xlsx

答案 1 :(得分:0)

在SAS 9.4 TS1M1及更高版本中,您可以使用ods excel导出实际的xlsx文件,而无需访问PC FILES的许可。在SAS 9.3中,此功能无法使用。

答案 2 :(得分:0)

use the below code to export excel or csv file 
/*import the .xlsx or csv file */
FILENAME REFFILE '/<path to file>/Statistic_Details.xlsx';

PROC IMPORT DATAFILE=REFFILE
    DBMS=XLSX
    OUT=libref.Statistic_Details;
    GETNAMES=YES;
RUN;

PROC CONTENTS DATA=libref.Statistic_Details; RUN;