从内存发送电子邮件与Excel附件

我已经创build了一个动作,导出表使用officeopenxml在我的mvc项目中officeopenxml

下面是我如何将我的表转换为Excel:

 public ActionResult ExportToExcel() { _lstRecords = (List<Summary>) Session["Paging"]; List<Excel> lstExportedExcel = new List<Excel>(); foreach (var item in _lstRecords) { Excel export = new Excel(); export.Date = item.Date.ToString("MM/dd/yyyy HH:mm"); export.Assignment = item.codeAssignment.Assignment; export.County = item.codeCounty.County; lstExportedExcel.Add(export); } ExcelPackage excel = new ExcelPackage(); var color = ColorTranslator.FromHtml("#2c3e50"); var border = ExcelBorderStyle.Double; var workSheet = excel.Workbook.Worksheets.Add("Sheet1"); workSheet.Cells[1, 1].LoadFromCollection(lstExportedExcel.OrderBy(x => x.Date).ToList(), true); workSheet.DefaultColWidth = 25.0; workSheet.Cells[1,1,1,10].Style.Border.BorderAround(border, color); workSheet.Cells[1, 1, 1, 10].Style.Font.Bold = true; workSheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; workSheet.InsertRow(2,1); using (var memoryStream = new MemoryStream()) { Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=SummaryRecords.xlsx"); excel.SaveAs(memoryStream); memoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } return RedirectToAction("Index"); } 

现在,当用户点击视图上的button时,他们会在幕后进行此操作,并出现一个对话框,要求他们打开或保存。

现在我的下一个目标是能够直接从我的应用程序添加此Excel表作为附件的电子邮件。 所以我想添加另一个button在我的观点,将打开Outlook作为附件的Excel表格,而不必保存文件..是可能的,或用户必须下载文件?