ho risolto in questo modo:
codice:
public partial class tme_ent_dett : System.Web.UI.Page
{
    static string territorio;
    static string gruppo;
    String ConnString = "Provider=sqloledb; Data Source=10.10.237.111; Initial Catalog=PREMIUM_CARE_E_WEB_SERVICES_2008_1H; User Id=sa; Password=!tutankamon$4;";
    protected void Page_Load(object sender, EventArgs e)
    {
        territorio=Request.QueryString["terr"];
        gruppo = Request.QueryString["gruppo"];
        Response.Write(territorio);
        Response.Write(gruppo);
    }
    protected void ImageButton1_Click(object sender, EventArgs e)
    {
        OleDbConnection cn = new OleDbConnection(ConnString);
//Apriamo la connessione
        cn.Open();
//Componiamo la stringa di interrogazione al database
        String sql = "SELECT TERRITORIO, GRUPPO_PREMIUM_CARE, ROW_ID, LAST_UPDATE, STATO, DATA_STIPULA_ORDINE, TEMPO_EVASIONE, TEMPO_IN_MERCE, TEMPO_EFFETIVO FROM passo_4_dettaglio_kpi_tme WHERE (GRUPPO_PREMIUM_CARE = '" + gruppo + "') AND (TERRITORIO ='" + territorio + "')";
//Creiamo l'oggetto cmd di tipo OleDbCommand
//passando la sql e la connessione al costruttore dell'oggetto
        OleDbCommand cmd = new OleDbCommand(sql, cn);
//Creiamo un oggetto di tipo OleDbDataReader
//Esso è assimilabile a un RecordSet con cursore di tipo forward-only in ASP tradizionale
        OleDbDataReader rdr = cmd.ExecuteReader();

        Response.Clear();
        Response.AddHeader("Content-Disposition", "Filename=incaricati.xls");
        Response.ContentType = "application/vnd.ms-excel";

        bool flag = false;
        Response.Write("<table border=1 cellpadding=2 align=center>");
            Response.Write("<tr bgcolor=#336699>");
                Response.Write("<th><font color=white size=1 face=Verdana>TERRITORIO</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>PREMIUM CARE</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>CODICE ORDINE</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>DATA CHIUSURA</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>STATO</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>DATA STIPULA</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>TEMPO EFFETTIVO</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>TEMPO IN MERCE</font></th>");
                Response.Write("<th><font color=white size=1 face=Verdana>TEMPO EVASIONE</font></th>");
            Response.Write("</tr>");
        while (rdr.Read())
        {
            Response.Write("<tr>");
            for (int i = 0; i < rdr.FieldCount; i++)
            {
                Response.Write("<td bgcolor=\"#cddbeb\">" + rdr[i] + "</td>");
            }
            Response.Write("</tr>");
        }
        Response.Write("</table>");
        Response.End();
    }
}
e nella pagina aspx:
<asp:ImageButton ID="ImageButton1" runat="server" Height="16px"
onclick="ImageButton1_Click" />
in questo modo però cliccando sul link col tasto destro del mouse non mi compare la possibilità di salvare direttamente il file