BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ervinodsingh
Obsidian | Level 7

Hi i have a excel file which has multiple sheets with name Jan, Feb, March, April, ....Dec. I want to load this data for further use using macro.

Thankyou

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

If you are using SAS 9.4 (since I think TSM2?) then just use the XLSX engine on a libname statement and you can treat the sheets as if they were datasets.  This does not require Excel and so works on Unix in addition to Windows, but I think it does require that you have SAS/Access to PC files licensed.

 

I find it is useful to just use PROC COPY to copy all of the sheets into WORK datasets and then I can use them from there.

libname in xlsx 'myfilename.xlsx';
proc copy inlib=in outlib=work;
run;

 

View solution in original post

2 REPLIES 2
RW9
Diamond | Level 26 RW9
Diamond | Level 26

First rule of programming club, macro is never needed.  What version of SAS/Excel are you using?  If your using 9.4 then the simplest way to do it is to use the libname excel method:

libname myxlsx excel "<path to file>\<filename>.xlsx";

...

libname myxlsx clear;

The libname excel will open an XLSX file, and create a dataset for each sheet it find which is compatible.  You can then use simple statements like:

libname myxlsx excel "<path to file>\<filename>.xlsx";

data want;
set myxlsx.'Sheet 1'n;
run; libname myxlsx clear;
Tom
Super User Tom
Super User

If you are using SAS 9.4 (since I think TSM2?) then just use the XLSX engine on a libname statement and you can treat the sheets as if they were datasets.  This does not require Excel and so works on Unix in addition to Windows, but I think it does require that you have SAS/Access to PC files licensed.

 

I find it is useful to just use PROC COPY to copy all of the sheets into WORK datasets and then I can use them from there.

libname in xlsx 'myfilename.xlsx';
proc copy inlib=in outlib=work;
run;

 

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 615 views
  • 1 like
  • 3 in conversation