コード例 #1
0
        public ActionResult Export(SupplierModels model)
        {
            try
            {
                // set name for sheet in file excel
                XLWorkbook wb                   = new XLWorkbook();
                var        wsSupplier           = wb.Worksheets.Add("Supplier");
                var        wsSupplierIngerdient = wb.Worksheets.Add("Ingredients_Supplier");

                var response = _factory.Export(ref wsSupplier, ref wsSupplierIngerdient, model.ListCompanys, lstCompany);


                if (!response.IsOk)
                {
                    ModelState.AddModelError("Supplier", response.Message);
                    return(View(response));
                }

                ViewBag.wb = wb;
                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.Charset         = System.Text.UTF8Encoding.UTF8.WebName;
                Response.ContentEncoding = System.Text.UTF8Encoding.UTF8;
                Response.ContentType     = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", String.Format(@"attachment;filename={0}.xlsx", CommonHelper.GetExportFileName("Supplier").Replace(" ", "_")));

                using (var memoryStream = new System.IO.MemoryStream())
                {
                    wb.SaveAs(memoryStream);
                    memoryStream.WriteTo(HttpContext.Response.OutputStream);
                    memoryStream.Close();
                }
                HttpContext.Response.End();
                return(RedirectToAction("Export"));
            }
            catch (Exception e)
            {
                _logger.Error("SupplierExport: " + e);
                //return new HttpStatusCodeResult(400, e.Message);
                ModelState.AddModelError("List", CurrentUser.GetLanguageTextFromKey("Export file have error"));
                return(View(model));
            }
        }