透過SAS/ACCESS Interface to PC Files 的PROC EXPORT程序輸出結果,會遇到工作表(sheet)的名字前出現底線(underscore),例如在SAS裡面設定工作表名稱為「A9」,但在Excel打開就變成「_A9」。
這是一個小到不行的疑問,不過多年來我也沒有去了解為何,反正大部分狀況都沒什麼影響。不過最近遇到一個工作,才讓我認真去找一下答案。最後找的答案很簡單,就是命名的時候避免使用【1~3字母加上1個或多個數字】的組合,可以參考下面的實際得到的結果。
data a1;
do i=1 to 2;
do x= 1 to 2;
output;
end;
end;
run;
proc export data = a1
outfile = "c:\temp\exporttest.xlsx"
dbms = excel2010 replace;
SHEET="A9"; /*更換工作表名稱*/
run;
結果
SAS | Excel | SAS | Excel | SAS | Excel |
A9 | _A9 | Z99 | _Z99 | TRY123 | _TRY123 |
AA9 | _AA9 | ZZ99 | _ZZ99 | IV65536 | _IV65536 |
AAA9 | _AAA9 | ZZZ99 | ZZZ99 | XFD1048576 | _XFD1048576 |
AAAA9 | AAAA9 | ZZZZ99 | ZZZZ99 |
這個問題會發生,主要是SAS設定工作表名稱時,會避免與EXCEL"範圍名稱"相同而發生的。在SAS 9.X版在遇到這個狀況就會員設定的名字前面加上底線。
官方說明:Problem Note 14475: PROC EXPORT to Excel inserts leading underscore in Worksheet name
沒有留言:
張貼留言