You can create a layout such that the output value (separate ones) displayed in the layout is delimited by comma. Run the report from the url using mode=character, destype=File, desformat=wide180 or wide1000 (preferably) and write it to a csv file. When a csv file is launched it will automatically open in Excel.
The headings can also be taken care of adjusting field values in the layout. When a heading needs to be displyed display it as the required value or hide the object (make it invisible).