1

我正在使用 WPS(本质上是用 SAS 编写),我正在尝试对 xlsx 文件进行 proc 导入和 proc 导出,但它一直给我错误。我真的不知道我实际使用的是哪个版本的 SAS,因为编译器是 WPS。在完成如此简单的任务时,我们将不胜感激!

对于 proc 导入,我使用的代码如下:

proc import out=apples replace
   datafile="C:\oranges\apples.xlsx";
   sheet = "fruits";
run;   

我得到的错误是:

libname _EXCIMP excel "C:\oranges\apples.xlsx" mixed=NO header=YES msengine=ACE use_datetype=YES scan_textsize=YES scan_timety pe=YES   dbmax_text=1024
ERROR: A database error occurred. The database specific error follows:
   DATABASE error: Class not registered;
data apples;
set _EXCIMP.'fruits$'n;run;
          ^
ERROR: Library "_EXCIMP" is not known

对于 proc 导出,我使用的代码如下:

PROC EXPORT 
   DATA=have
   DBMS = EXCEL
   LABEL 
OUTFILE='C:\blabla\bla.xlsx' REPLACE;    

我得到的错误是:

libname _EXCEXP excel 'C:\blabla\bla.xlsx' ms engine=ACE  replace;
ERROR: A database error occurred. The database specific error follows:
   DATABASE error: Class not registered
data _EXCEXP.'have'n;
           ^
ERROR: Library "_EXCEXP" is not known
set have; run;
4

3 回答 3

1

“类未注册”通常意味着您拥有 64 位 SAS 和 32 位 Excel。不知道 WPS 是否有同样的问题。

于 2016-11-18T19:59:20.733 回答
0

这是 64 位 / 32 位的情况。SAS 64 位具有使用 Office 32 位的免费解决方案。WPS 没有这样的选项;您必须拥有 WPS 32 位版本才能使用 Office 32 位(仍然是标准的并且由 Microsoft 推荐)。

于 2018-05-18T20:11:48.280 回答
0

WPS 足够不同,以至于他们为引擎使用不同的名称。尝试使用

DBMS=EXCEL2010
于 2016-11-18T23:31:05.380 回答