title: Download file with ClosedXML
body: <p>All</p>
  
  <p>How can I download a file so the user sees that it is downloading (like with a stream?)</p>
  
  <p>I am currently using ClosedXML, but if I use the SaveAs method, I have to give a hard-coded URL, and if I just give the file name it does not automatically download to the download folder.</p>
  
  <p>The method below works great, but I have to create my own excel file, which is based upon HTML, and the file grows way too large than it should, when I use ClosedXML the file is only 50% or less from the size of the code below:
  However, the download behaviour is how I would like it to be.</p>
  
  <p>Is there a way I can convert the code below so I can give my 'workbook' as an object, and it just downloads this workbook?</p>
  
  <pre><code>HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
  HttpContext.Current.Response.Charset ="UTF-8";    
  HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;
  HttpContext.Current.Response.ContentType = "application/ms-excel";
  ctl.Page.EnableViewState =false;   
  System.IO.StringWriter  tw = new System.IO.StringWriter() ;
  System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
  ctl.RenderControl(hw);
  HttpContext.Current.Response.Write(tw.ToString());
  HttpContext.Current.Response.End();
  </code></pre>
  
  <p>Thanks</p>