title: Generate CSV file in ASP.Net
body: <p>I am using the code below on an aspx page on button click event to generate csv file. This works when I do not name my file but when I try to use:
      Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");</p>
  
  <p>to name the file as myfilename.csv, the excel sheet generated is the screen shot of the web page instead of having text in it. Can someone help me with this problem.<br>
  Thanks!</p>
  
  <pre><code>DataGrid dg = new DataGrid();
  dg.DataSource = GetData();
  htmlTextWriter.WriteLine("&lt;b&gt;Details&lt;/b&gt;");
  
  //Get the html for the control
  dg.HeaderStyle.Font.Bold = true;
  dg.HeaderStyle.BackColor = System.Drawing.Color.Gray;
  dg.DataBind();
  dg.RenderControl(htmlTextWriter);
  
  //Write the HTML back to the browser.
  Response.Clear();
  Response.ContentType = "application/vnd.ms-excel";
  //Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
  this.EnableViewState = false;
  Response.Write(textWriter.ToString());
  Response.End();
  
  private System.Data.DataTable GetData()
  {
      System.Data.DataTable dt = new System.Data.DataTable("TestTable");
      dt.Columns.Add("SSN");
      dt.Columns.Add("Employee ID");
      dt.Columns.Add("Member Last Name");
      dt.Columns.Add("Member First Name");
      dt.Columns.Add("Patient Last Name");
      dt.Columns.Add("Patient First Name");
      dt.Columns.Add("Claim No.");
      dt.Columns.Add("Service Line No.");
      dt.Columns.Add("Error Code");
      dt.Columns.Add("Error Message");                
      dt.Rows.Add(123456789,4455,"asdf","asdf","sdfg","xzcv","dsfgdfg123",1234,135004,"some error");            
      dt.Rows.Add(123456788,3344,"rth","ojoij","poip","wer","aadf124",1233,135005,"Some Error");
      dt.Rows.Add(123456787,2233,"dfg","sdfg","vcxb","cxvb","UHCAL125",1223,135006,"another error");
      return dt;
  }
  </code></pre>