BookmarkSubscribeRSS Feed
DoumbiaS
Quartz | Level 8

Using ods tagsets.excelxp cut values to a certain number of digits. Did someone know why ?

 

Regards

3 REPLIES 3
DoumbiaS
Quartz | Level 8

Like in this example

 

data have;
input a b;
cards;
2.123456789  3.123456789
;run;

ods tagsets.excelxp file= "&folder\have.xls" options(sheet_name= "have") style= SasDocPrinter ;
proc print data=have noobs label;
run;
ods tagsets.excelxp close;

:

 

Kurt_Bremser
Super User

First of all, don't lie with filenames. You are creating Excel-compatible XML, so the file should have an extension of .xml.

 

And keep in mind that ODS is for printed, user-readable, reporting-style output; therefore it respects the formats of variables.

Assign a proper format:

data have;
input a b;
format a b best32.;
cards;
2.123456789  3.123456789
;
run;

and you will see that all decimals end up in Excel.

ChrisHemedinger
Community Manager

If using SAS 9.4 or later, use ODS EXCEL in place of ODS tagsets.EXCELXP -- this will create a native XLSX file for you.  You'll still need to apply the number format as @Kurt_Bremser suggests.

SAS For Dummies 3rd Edition! Check out the new edition, covering SAS 9.4, SAS Viya, and all of the modern ways to use SAS!

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 3 replies
  • 1366 views
  • 0 likes
  • 3 in conversation