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

I am trying to read a XLSX file that is "compressed" in Windows 10 I assume WinZip.   When I point to it I get: Insufficient authorization to access error

 

filename in1 zip 'C:\myzipfile.zip' ;

data _null_;
infile in1;
input;
put _infile_;
run;

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

You cannot read an XLS file like it was text.  You could try to read it as binary data, but it wouldn't make sense to do that.  Instead use PROC IMPORT to convert on of the sheets in the XLS file into a SAS dataset.

You could try using your fileref of IN1 with PROC IMPORT,

filename in1 ZIP 'C:\health.zip' member="myhealth.xls" recfm=f lrecl=512;
proc import datafile=in1 dbms=xls out=myhealth replace;
run;

but I suspect that you will have to copy the file out of the ZIP into a real physical file and point PROC IMPORT at that physical file instead.  You could use a temporary file.

filename in1 ZIP 'C:\health.zip' member="myhealth.xls" recfm=f lrecl=512;
filename copy temp recfm=f lrecl=512;
data _null_;
  rc=fcopy('in1','copy');
  put rc=;
run;

proc import datafile=copy dbms=xls out=myhealth replace;
run;
proc contents data=myhealth;
run;

 

View solution in original post

7 REPLIES 7
Kurt_Bremser
Super User

Do you have a standalone SAS installation, or do you work in a client/server environment? If the latter, you can't access your desktop drive like this.

asabou01
Obsidian | Level 7

No it is a network drive (client/server)

Kurt_Bremser
Super User

C: is NOT a network share. It is always the local disk from which Windows was started.

I was NOT asking about your disk drives, I was asking about your SAS installation. Be precise in your wording.

asabou01
Obsidian | Level 7

Sorry about "misspeaking" on my part.   Windows 10 SAS installed on local PC.  I added a "member" and I was able to read it.   

 

The member is in XLS format and not newer EXCEL version (XLSX).   Do I need now to define all columns in XLS file in a datastep? I have been using "Proc Import" after un-compressing the file in the past. Thanks very much!

filename in1 ZIP 'C:\health.zip' member="myhealth.xls";

data be;
infile in1;
input;
run;

 

 

Tom
Super User Tom
Super User

You cannot read an XLS file like it was text.  You could try to read it as binary data, but it wouldn't make sense to do that.  Instead use PROC IMPORT to convert on of the sheets in the XLS file into a SAS dataset.

You could try using your fileref of IN1 with PROC IMPORT,

filename in1 ZIP 'C:\health.zip' member="myhealth.xls" recfm=f lrecl=512;
proc import datafile=in1 dbms=xls out=myhealth replace;
run;

but I suspect that you will have to copy the file out of the ZIP into a real physical file and point PROC IMPORT at that physical file instead.  You could use a temporary file.

filename in1 ZIP 'C:\health.zip' member="myhealth.xls" recfm=f lrecl=512;
filename copy temp recfm=f lrecl=512;
data _null_;
  rc=fcopy('in1','copy');
  put rc=;
run;

proc import datafile=copy dbms=xls out=myhealth replace;
run;
proc contents data=myhealth;
run;

 

asabou01
Obsidian | Level 7

Thank you so much!

Tom
Super User Tom
Super User

A ZIP file is like a directory. What file inside the ZIP file are you trying to read? You need to specify the member name. Either in the FILENAME statement or the INFILE statement.

https://documentation.sas.com/?docsetId=lestmtsglobal&docsetTarget=n1dn0f61yfyzton1l2ngsa1clllr.htm&...

If it is an XLSX file then you will need to first copy it out to an actual file for the XLSX libname engine to work on it.

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 1883 views
  • 1 like
  • 3 in conversation