2013-08-05 85 views
1

我期待合併大約15個不同的excel文件來創建一個數據集。我知道編碼中的變量在每個文件中都是相同的。問題是所有數據的起始行對於每個xls都是不一致的。有沒有辦法使用proc import併爲每個文件標識要導入的特定行?使用Excel文件中的開始行生成SAS數據集?

謝謝!

+0

XLS或XLSX?什麼版本的SAS - 9.1.3,9.2,9.3,9.4?你有訪問PCFILES許可 - 即,如果你從第1行加載它,你會使用什麼進口代碼? – Joe

+0

XLS和XLSX。 SAS 9.3。不,我想知道是否有任何東西可以插入到proc導入代碼中,以便我可以規定一個起始行,本質上。 – Jebediah15

+0

如果您沒有獲得許可的PC FILES的訪問權限,則無法使用PROC IMPORT和Excel。 – Joe

回答

0

假設你正在使用DBMS=EXCEL,你必須提供給您的RANGE選項:

proc import file="myfile.xlsx" out=mydataset dbms=excel replace; 
range="'Sheet1$A1:Z1000'"; 
run; 

明顯變化Sheet1中,A1和Z1000,以配合您的需要。

This manual page包含有關其他DBMS選項(包括DBMS = XLS)的更多信息。

+0

備註:DBMS = EXCEL應該適用於XLS和XLSX; DBMS = XLS是第二種也適用於XLS的方法(9.3中的DBMS = XLSX TS1M2是XLSX的第二種可用方法)。 – Joe

+0

其實範圍是一個屁股疼痛 - 我寧願有STARTROW,但不存在。但是,它的確意味着你可以使用命名範圍(如果更容易)(使用Excel命名範圍然後使用它)。也可以使用LIBNAME,如果這比PROC IMPORT更容易(尤其是如果它們都在同一個工作簿中)。 – Joe