There is a much easier way to do this than the XML appraoch. try this in an asp file and you will see how simple it can be
<%
''// Set the name of the file that you are going to output
FileName = "MySpreadsheet.xls"
''// Build up a regular HTML table (this translates into the rows and cells in excel)
sData = "<table><tr><th>Name</th><th>Age</th></tr>"
sData = sData & "<tr><td>Mike</td><td>26</td></tr>"
sData = sData & "</table>"
''// Write out the table
response.write sData
''// Set the Header info
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition","attachment; filename=" & FileName
%>
If you want, you can put this into a function on your page. Then just make a link back to your page with a querystring that you can check and if it is there, run the function. If you run this, you will see that it prompts you to save the excel doc from the page. Just loop through your records to populate the rows and you are all set.