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

When i run the following code i get the error shown in the log snipet below.  I am connecting to sas through a citrix connection and wanting to export this out to my local machine.  Is there an option somewhere that i am missing?

Thanks

Damon

Code

ODS TAGSETS.EXCELXP

FILE="\\Client\C$\SAS Outputs\Data Analysis.xlsx"

STYLE=minimal

OPTIONS ( Sheet_Name = 'Model' );

PROC PRINT DATA=work.tmp_user_mod; RUN;

ODS TAGSETS.EXCELXP

OPTIONS ( Sheet_Name = 'Cost V' );

PROC PRINT DATA=work.temp_cost_v; RUN;

ODS TAGSETS.EXCELXP CLOSE;

Log


ERROR: Insufficient authorization to access /server/sas/Lev1/SASApp/\\Client\C$\SAS Outputs\Data

       Analysis.xlsx.

ERROR: No body file. TAGSETS.EXCELXP output will not be created.

1 ACCEPTED SOLUTION

Accepted Solutions
Cynthia_sas
SAS Super FREQ

Hi:

The fact that the resolved path is this:

/server/sas/Lev1/SASApp/\\Client\C$\SAS Outputs\Data

where the /server/sas/Lev1/SASApp location is "prepended" to the FILE= location indicates to me that

1) SAS is running on a server;

2) the default output location on the server has been "pre-defined" as /server/sas/Lev1/SASApp/ (and usually, this location is set as read-only for all the people who are using SAS on this server)

3) you will need to use a fully qualified path name, to a folder where you have write access, but it will need to be a server location that SAS can see. Generally, this will NOT be your local C drive, unless your administrators have enabled this.

  Another point -- your file extension is incorrect. You cannot use .XLSX as a file extension for TAGSETS.EXCELXP. TAGSETS.EXCELXP creates Spreadsheet Markup Language XML created for Office 2003. The correct file extension is .XML, but, in a pinch, you can name the file with the extension .XLS. Excel will complain about the .XLS, but not about .XML -- I believe that if you use .XLSX, that the file will not open. Using .XLS just fools the Windows registry into launching Excel if you double click on the file. But, Excel will complain with this snarky message shown in this Tech Support note: 31956 - Using the MSOffice2k ODS destination with Microsoft Excel 2007 generates a dialog box.

  So, even if you fix the server/file issue, you may still have problems unless you change the file extension.

cynthia

View solution in original post

7 REPLIES 7
Haikuo
Onyx | Level 15

It seems to me that you don't have at least write access to that location. Try to copy a random file onto that folder to see what happens. If you can't do that, talk  to you network administrator.

dsbihill
Obsidian | Level 7

Thats correct i dont have write access to the /server/sas/lev1/sasapp/ location but i also didn't choose to try and write here.  For some reason sas is putting this in front of the location

that i want to write to that is my local client at '\\client\c$\sas outputs'

ballardw
Super User

Since you specified a RELATIVE location in your file= that may be the issue. Try a fully qualified name such as "C:\folder\file.xlxs"

But there also may be an issue with your apparent sever not seeing that location as the result file is a mix of unix and windows filenaming. There's a question about that in the forum about every day now it seems.

Cynthia_sas
SAS Super FREQ

Hi:

The fact that the resolved path is this:

/server/sas/Lev1/SASApp/\\Client\C$\SAS Outputs\Data

where the /server/sas/Lev1/SASApp location is "prepended" to the FILE= location indicates to me that

1) SAS is running on a server;

2) the default output location on the server has been "pre-defined" as /server/sas/Lev1/SASApp/ (and usually, this location is set as read-only for all the people who are using SAS on this server)

3) you will need to use a fully qualified path name, to a folder where you have write access, but it will need to be a server location that SAS can see. Generally, this will NOT be your local C drive, unless your administrators have enabled this.

  Another point -- your file extension is incorrect. You cannot use .XLSX as a file extension for TAGSETS.EXCELXP. TAGSETS.EXCELXP creates Spreadsheet Markup Language XML created for Office 2003. The correct file extension is .XML, but, in a pinch, you can name the file with the extension .XLS. Excel will complain about the .XLS, but not about .XML -- I believe that if you use .XLSX, that the file will not open. Using .XLS just fools the Windows registry into launching Excel if you double click on the file. But, Excel will complain with this snarky message shown in this Tech Support note: 31956 - Using the MSOffice2k ODS destination with Microsoft Excel 2007 generates a dialog box.

  So, even if you fix the server/file issue, you may still have problems unless you change the file extension.

cynthia

andreas_lds
Jade | Level 19

Cynthia@sas wrote:

  Another point -- your file extension is incorrect. You cannot use .XLSX as a file extension for TAGSETS.EXCELXP.

Will there be a tagset generating xlsx files in the near future? 

RW9
Diamond | Level 26 RW9
Diamond | Level 26

I wouldn't think so.  XLSX is a Microsoft Open Office format file.  What that means is that it is in essence a ZIP file (rename the XLSX to zip and then doubkle click it), with several files and folders within it.  These files and folders describe the document, the sheets, links formats etc. in a many relational XML format.  VBA sections are still compiled binary elements.  The tagset ouput just generates a text XML file which Excel then interprets using its own XML parser.  To generate an XLSX is not that simple and would require a fair bit of processing. 

thomasduhs
Calcite | Level 5

Hi 

 

I have a very similar problem.

 

SAS is running on a remote linux server.  I'm using a windows PC.  I'm trying to export an excel file from SAS EG to the local PC C:\.

 

The sys admin is telling me that's not possible.  I don't believe him though because it is possible to do it with the export file wizard, so it seems to me it *must* be possible.  I just can't work out how to do it in code.

 

The export file wizard references "\\Client\C$\directory\subdir".  When I try to write to that directory using code, it prepends the server name "\opt\prod\...".  If I reverse the slash to direction the prepended server name goes away "//\\Client\C$\directory\subdir\" appears to use the right directory, but then I get an insufficient privileages message, even though I do of course have write privelages for "C:\directory\subdir".

 

Any thoughts?  I just don't see how it's plausible that this *can't* be done, given the export wizard can do it easily.

 

Cheers

Thomas

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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
  • 8543 views
  • 3 likes
  • 7 in conversation