Bueno...la verdad no tengo windows y por eso se me haría más difícil indicarte en ASP qué es lo que sucede. Lo bueno es que no hay problema si te mando una versión en PHP que utilicé algunos años atrás....
Ahora a ajustar a tus necesidades y, si estás en ASP pues a traducir (haz la consulta, limpia los resultados y manda todo como al navegador con los encabezados de excel...)
Saludos....
<?php
//CONEXION
define(db_host, "localhost");
define(db_user, "root");
define(db_pass, "root");
define(db_link, mysql_connect(db_host,db_user,db_pass));
define(db_name, "rally");
mysql_select_db(db_name);
// CODIGO
$header = '';
$data = '';
$select = "SELECT * FROM USUARIOS";
$export = mysql_query($select);
$fields = mysql_num_fields($export);
for ($i = 0;$i < $fields; $i++) {
$header .= mysql_field_name($export, $i) . "\t";
}
while($row = mysql_fetch_row($export)){
$line = '';
foreach ($row as $value) {
if ((!isset($value)) OR ($value == "")) {
$value = "\t";
} else {
$value = str_replace('""','""',$value);
$value = '""' . $value . '' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
$data = str_replace("\r","",$data);
if ($data == "") {
$data = "\n(0) Registros encontrados\n";
}
// HTML
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=usuarios.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
?>