Hi, Peter...
Yes...but PROC PRINT is adding a layer of "reporting" between the data set and the output destination -- even if you're taking all the defaults.
The complexity comes in because a dataset can't have a PROCTITLE, a dataset can't have a SAS Title or a SAS Footnote or a BYLINE or a SUMBY or a BY and a PAGEBY. A dataset doesn't have the potential for page numbers on each page. So, ODS CSV, even if it's going to ignore many of these features of PROC PRINT, still has some checking that it does...that's related to
So even though it seems like there's no difference between PROC PRINT and PROC EXPORT to CSV, there is a difference...and it's the difference between DATA and REPORTS. I know that the tagset is doing more behind the scenes -- for example, if you have a formatted value that might give Excel fits, then I believe that ODS CSV strips out offending characters. Sometimes, for example, you have a field that's numeric, but with a % or a $ in the field, Excel treats the number as a character and it gives you that funny green triangle in the cell. Those are some of the things that ODS CSV is trying to fix for you. I know that newer versions of the tagset do the checking in different ways.
I don't actually know _all_ that the tagset is doing, just what I've experienced in using it. Most of the time, I use TAGSETS.EXCELXP.
cynthia