La preuve ci-dessous :

On supose que l'on veut exporter vers Excel une gridview nommée "grdData". Créer un button ou un imagebutton, sur le onClick, il suffit de mettre ce code :
   Response.Clear();
   Response.AddHeader("content-disposition", "attachment;filename=fichierExcel.xls");
   Response.Charset = "";
   Response.Cache.SetCacheability(HttpCacheability.NoCache);
   Response.ContentType = "application/vnd.xls";
   System.IO.StringWriter stringWrite = new System.IO.StringWriter();
   System.Web.UI.HtmlTextWriter htmlWrite =new HtmlTextWriter(stringWrite);
   grdData.AllowPaging = false;
   grdData.RenderControl(htmlWrite);
   Response.Write(stringWrite.ToString());
   Response.End();


Attention, si vous travaillez avec Ajax et que votre gridview est dans un UpdatePanel, le bouton d'export devra être HORS du UpdatePanel (logique, mais il fallait y penser)
Pour exporter vers Word, il suffit de remplacer les lignes :

   Response.AddHeader("content-disposition", "attachment;filename=fichierExcel.xls");
par
   Response.AddHeader("content-disposition", "attachment;filename=fichierWord.doc");

et

 Response.ContentType = "application/vnd.xls";
par
 Response.ContentType = "application/msword";