public async Task <IActionResult> OnPostExport(int currentPage, int pageSize, string searchString, string sortOrder) { StockItem = await InitiateView(currentPage, pageSize, searchString, sortOrder); string sWebRootFolder = _hostingEnvironment.WebRootPath; string sFileName = @"Stock Data.xlsx"; string URL = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, sFileName); FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName)); var memory = new MemoryStream(); using (var fs = new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Create, FileAccess.Write)) { ExcelPackage package = new ExcelPackage(); package.Workbook.Worksheets.Add("Stock"); ExcelWorksheet stockSheet = package.Workbook.Worksheets["Stock"]; using (var range = stockSheet.Cells["A1:F1"]) { range.Style.Font.Bold = true; range.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; range.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(23, 121, 186)); range.Style.Font.Color.SetColor(Color.White); } stockSheet.Cells[1, 1].Value = "Id"; stockSheet.Cells[1, 2].Value = "Stock Name"; stockSheet.Cells[1, 3].Value = "Unit"; stockSheet.Cells[1, 4].Value = "Price"; stockSheet.Cells[1, 5].Value = "In Stock"; stockSheet.Cells[1, 6].Value = "Store"; for (int r = 0; r < StockItem.Count(); r++) { stockSheet.Cells[r + 2, 1].Value = StockItem.ToList()[r].Id; stockSheet.Cells[r + 2, 2].Value = StockItem.ToList()[r].StockName; stockSheet.Cells[r + 2, 3].Value = StockItem.ToList()[r].Unit; stockSheet.Cells[r + 2, 4].Value = StockItem.ToList()[r].Price; stockSheet.Cells[r + 2, 5].Value = StockItem.ToList()[r].InStock; int storeId = StockItem.ToList()[r].StoreId; stockSheet.Cells[r + 2, 6].Value = _context.Stores.FirstOrDefault(s => s.Store_ID == storeId).StoreName; stockSheet.Cells[1, 1, 1, 6].AutoFitColumns(); } package.SaveAs(fs); package.Dispose(); } using (var stream = new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; TempData["StatusMessage"] = "Stock successfully exported to file " + sFileName + "."; return(File(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName)); }