使用64位SAS中的libname语句与32个Excel进行交互

时间:2014-02-25 01:46:47

标签: excel-2007 sas

我安装了64位SAS 9.4和32位Office 2007.当我安装了32位SAS 9.3时,我能够使用libname语句,其中Excel文件是库,并且在此期间后面跟随“文件名”实际上是Excel文件中的工作表或命名范围。例如,您从libname语句开始

libname exceltst path="C:\Users\username\Documents\test.xlsx";

然后,您可以使用exceltst.stuff引用此命名范围,假设“stuff”是命名范围。

那么,这还有可能吗?我猜这与64位sas和32位excel有关,但我想知道是否有一些变化仍然有效。我可以使用proc导出导出到excel文件,它工作得很好,但我已经尝试了20个libname变种,无法让它工作。我得到的错误是:

ERROR: Connect: Class not registered
ERROR: Error in the LIBNAME statement.

3 个答案:

答案 0 :(得分:4)

使用SAS 9.4或更高版本9.3更新,您还有另一个选项:dbms=XLSXdbms=XLS,两者都可以正常工作(因为他们没有使用JET引擎或ACE引擎) )。仍需要访问PC FILES,但它们应该适用于混合位系统。

答案 1 :(得分:3)

如果您可以安装SAS PC Files Server,您仍然可以使用PCFILES目的地进行此操作。安装PC文件服务器软件不在这里的答案范围内,但谷歌有关说明,它们随时可用。您可以在桌面或中央服务器上安装PC文件服务器,如果这对您的工作场所更方便。

安装完成后,您只需访问:

libname mylib pcfiles path="blah\blah\blah.xlsx";

就像之前一样,但使用不同的dbms类型。

答案 2 :(得分:2)

问题是您需要64位Excel库才能与64位SAS进行交互。

几年前,Chris Hemedinger在这个问题上发表了一些工作。 http://blogs.sas.com/content/sasdummy/2012/05/01/64-bit-gotchas/

如果您有ACCESS / ODBC,则另一个选项是创建与Excel电子表格的ODBC连接。