Using ods tagsets.excelxp cut values to a certain number of digits. Did someone know why ?
Regards
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;
:
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.
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.
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.