如何在 SAS 中导出 xlsx 文件

How to export xlsx files in SAS

以下两个导出将在我的机器上出现错误(在 SAS base 和 SAS Enterprise Guide 中):

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 企业价格指南 5.1(64 位)

SAS Base 9.3(64 位)

Excel 2013(32 位)

编辑: @Grinvydas Kareiva 在他的回答中提到我需要 "SAS/Access Interface to PC Files"。这个安装向导在我从 SAS 支持网站(见上文)下载的 zip 文件中 运行ning setup.exe 之后。

但是,当我 运行 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

我是不是做错了什么?

首先,您需要获得许可 "SAS/ACCESS Interface to PC Files"。 提交后可以在日志中查看

proc setinit;
run;

如果你有那个接口,其中一个应该可以工作

dbms=excel or dbms=xlsx

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

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;