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();
        }
示例#2
0
        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();
        }