Turns out it doesn't take too long to generate the CSV. It works nicely the way you recommended when I click Save (on the download file dialogue box) using IE6:
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename=' . $reportname . '.csv"');
But here are the problems:
Using IE6, if I click "open" and excel is not already running, I get an error from excel as the program starts up, like: 'C:\Documents at settings.......filename.csv' cannot be found. Check the spelling, blah blah.
If excel is already running, there's no problem clicking "open." 'Save' works unconditionally in IE.
In Mozilla (firefox), it doesn't work at all. Clicking the link to my CSV generating script results in an error popup (not from excel, but from the browser). "C:.....tempfilename.csv could not be save because an unknown error occurred."
Anyone have any suggesstions? Thanks.