w11z,
The CFFILE tag will do what you need. Specify your contentType and give the file a XLS extension. XCEL can interpret HTML tables, so just output your queries into HTML tables.
Make a new file every time the template is loaded, do not attempt to append to an XLS file that already exists unless you do so within the same template where it was created. There are many things that can 'lock' access to this file on the server side, and since you're running reports, its better to have the date in the name of the file so each one is unique.
This should do what you need:
<CFFILE contentType="application/x-msexcel"
action="write"
file="/
output =
'
<table border=1>
<tr>
<td><b>Name</b></td>
<td><b>Phone</b></td>
</tr>
<tr>
<td>strantheman</td>
<td>youwish</td>
</tr>
</table>
'>
Test.xls created!<Br><Br>
<!--- add to the file --->
<CFFILE
contentType="application/x-msexcel"
action="append"
file="/
output =
'
<table border=1>
<tr>
<td>jackblack</td>
<td>5551212</td>
</tr>
</table>
'>
file added to!
----
Remember, you can use any combination of CFFILE action="append" if say, you wanted to append only 1 row, not an entire table, for each record returned. Then when you're done looping through the output, close the table.
hope this helps.