public ActionResult NPOIDownloadExcel()
        {
            //Database DB = new DatabaseProviderFactory().Create("Rock_2018_ConnectionString");
            Models.WebApi WebApi = new Models.WebApi();
            Models.NPOI   NPOI   = new Models.NPOI();
            //Models.WebApi.GetModel.Persons_req req = new Models.WebApi.GetModel.Persons_req();

            //req.limit = 20;
            //req.page = 1;

            //DataSet ds = new DataSet();
            //ds = WebApi.dsPersons(DB, req);
            //DataTable dtPersons = ds.Tables[0];
            DataTable dt = WebApi.dtSummaryReports(DB);

            using (var exportData = new MemoryStream())
            {
                HSSFWorkbook workbook = NPOI.NPOIGridviewToExcel(dt);
                workbook.Write(exportData);
                //string saveAsFileName = string.Format("Export-{0:d}.xls", DateTime.Now).Replace("/", "-");
                string saveAsFileName = "SummaryReport" + ".xls";
                byte[] bytes          = exportData.ToArray();
                return(File(bytes, "application/vnd.ms-excel", saveAsFileName));
            }
        }
예제 #2
0
        public HttpResponseMessage DownloadExcel()
        {
            //Database DB = new DatabaseProviderFactory().Create("Rock_2018_ConnectionString");
            Models.WebApi WebApi = new Models.WebApi();
            Models.NPOI   NPOI   = new Models.NPOI();
            Models.WebApi.GetModel.Persons_req req = new Models.WebApi.GetModel.Persons_req();

            req.limit = 20;
            req.page  = 1;

            DataSet ds = new DataSet();

            ds = WebApi.dsPersons(DB, req);
            DataTable dtPersons = ds.Tables[0];

            using (var stream = new MemoryStream())
            {
                HSSFWorkbook workbook = NPOI.NPOIGridviewToExcel(dtPersons);
                workbook.Write(stream);

                var result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(stream.ToArray())
                };
                result.Content.Headers.ContentDisposition =
                    new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
                {
                    FileName = "Orders" + ".xls"
                };
                result.Content.Headers.ContentType =
                    new MediaTypeHeaderValue("application/octet-stream");

                return(result);
            }

            // processing the stream.
        }