protected void btnExportExcel_Click(object sender, EventArgs e) { DataTable dtResults = GetSearchResults(); var mstream = new MemoryStream(); var sw = new StreamWriter(mstream); var dgResults = ciHelper.CreateDataGrid(); ciHelper.ConfigureDataGrid(ref dgResults, dtResults, true, false, true, 5, ""); dgResults.DataSource = dtResults; dgResults.DataBind(); var stringWrite = new StringWriter(); var htmlWrite = new HtmlTextWriter(stringWrite); dgResults.RenderControl(htmlWrite); htmlWrite.Flush(); sw.WriteLine(stringWrite.ToString().Replace("\n", "").Replace("\r", "").Replace(" ", "")); sw.Flush(); sw.Close(); byte[] byteArray = mstream.ToArray(); mstream.Flush(); mstream.Close(); Response.Clear(); Response.AddHeader("Content-Type", "application/vnd.ms-excel"); Response.AddHeader("Content-Disposition", "attachment; filename=ExportedData.xls"); Response.AddHeader("Content-Length", byteArray.Length.ToString(CultureInfo.InvariantCulture)); Response.ContentType = "application/octet-stream"; Response.BinaryWrite(byteArray); Response.End(); }
public void ExportFile(DataTable dtQueryResults, string fileName = "Check-In Export File") { var mstream = new MemoryStream(); var sw = new StreamWriter(mstream); var dgResults = ciHelper.CreateDataGrid(); ciHelper.ConfigureDataGrid(ref dgResults, dtQueryResults, true, false, true, 5, ""); dgResults.DataSource = dtQueryResults; dgResults.DataBind(); var stringWrite = new StringWriter(); var htmlWrite = new HtmlTextWriter(stringWrite); dgResults.RenderControl(htmlWrite); htmlWrite.Flush(); sw.WriteLine(stringWrite.ToString().Replace("\n", "").Replace("\r", "").Replace(" ", "")); sw.Flush(); sw.Close(); byte[] byteArray = mstream.ToArray(); mstream.Flush(); mstream.Close(); Response.Clear(); Response.AddHeader("Content-Type", "application/vnd.ms-excel"); Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}.xls", fileName)); Response.AddHeader("Content-Length", byteArray.Length.ToString(CultureInfo.InvariantCulture)); Response.ContentType = "application/octet-stream"; Response.BinaryWrite(byteArray); Response.End(); }