Blame it on Excel.
It will do strange things with values with dashes. Export to CSV and do NOT open in Excel, use something like Wordpad and you will see the values are fine. If you open in Excel and then save the csv the contents will change.
Changing properties in an XLSX before Export does not have any impact because the Proc Export is replacing the file. That is what the option REPLACE does.
You might try ODS EXCEL as the destination and use Proc Print instead of Export if you must look at it Excel.
data junk;
x='10-8880';
run;
ods excel file="x:\junk.xlsx";
proc print data=junk;
run;
ods excel close;
... View more