舉例來說,用以下語法匯入Excel檔案:
PROC IMPORT OUT= WORK.ehouse1
DATAFILE= "D:\成交狀況.xlsx"
DBMS=EXCEL REPLACE;
RANGE="資料$";
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
在LOG(日誌)會出現以下的文字:
ERROR: Connect: 類別未登錄
ERROR: Error in the LIBNAME statement.
Connection Failed. See log for details.
在SAS使用手冊明明寫到32和64位元版均可以透過PROC IMPORT匯入Excel檔案了,但為什麼會失敗了?
這點在手冊上沒有清楚寫明白,SAS 9.3 64位元版能正確匯入Office 64位元版的檔案,但無法匯入Office 32位元版的檔案,因此才會出現如此的錯誤。
因此遇到64位元版無法正確匯入Excel請先檢查你電腦Office的版本。先開啟Excel後點選「檔案」然後選取「說明」,就可以看到目前使用Office的版本了,如下圖。
在SAS的官方支援網頁有說明如何處理這個問題,簡單來說就是安裝「SAS® 9.3 PC Files Server」
安裝PC Files Server後,匯入Excel的語法要改為:
PROC IMPORT OUT= WORK.data1
DATAFILE= "D:\成交狀況.xlsx"
DBMS=EXCELCS REPLACE;
RANGE="資料$"
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
或是
libname xls1 PCFILES PATH="d:\成交狀況.xlsx"
data data1;
set xls1."資料$"n;
run;
libname xls1 clear ;
更多語法說明,就請自行參考SAS官方網頁的說明了。
Usage Note 43802: Installing SAS® 9.3 PC Files Server and using it to convert 32-bit Microsoft Office files to SAS® 64-bit files
我想請問一下
回覆刪除SAS跟OFFICE需要同樣都是64位元或32位元嗎?
因為我的OFFICE是64位元,SAS是32位元無法匯入EXCEL
請問OFFICE跟SAS需要都是相同位元的嗎?
回覆刪除因為我的OFFICE是64位元但是SAS是32位元的,無法匯入EXCEL
這個一個很好的問題,有空先閱讀我建議的參考連結A。
回覆刪除就我的瞭解最好兩的都同樣位元的,在匯入檔案會比較順利。
然後要使用Office 64或 SAS 64都要有心理準備會遇到一些困難,可見我建議參考連結B和C。
A: How do I export from SAS to Excel files: Let me count the ways (http://blogs.sas.com/content/sasdummy/2012/02/11/export-excel-methods/ )
B: The top gotchas when moving to 64-bit SAS for Windows ( http://blogs.sas.com/content/sasdummy/2012/05/01/64-bit-gotchas/ )
C: 選擇 32 位元或 64 位元版的 Microsoft Office ( http://office.microsoft.com/zh-tw/excel-help/HA010369476.aspx )