public void SaveGridToExcel() { var dataTable = Session["datatableForGrid"] as DataTable; if (dataTable == null || dataTable.Rows.Count == 0) { return; } var excelExporter = DataTableToExcelExporter.CreateInstance(); var excelStream = excelExporter.DataTableExportToMemory(dataTable, "Result query"); SaveGridToFile(excelStream, "application/vnd.ms-excel", "Result.xlsx"); }
/// <summary> /// Метод сохранения в Эксель. Принимает таблицу и заголовок. /// Вызывает диалоговое окно сохранения в файл /// </summary> /// <param name="table"></param> /// <param name="title"></param> public static void SaveExcel(DataTable table, string title) { // Configure save file dialog box Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "ResultQuery"; // Default file name dlg.DefaultExt = ".xlsx"; // Default file extension dlg.Filter = "Text documents |*.xlsx"; // Filter files by extension // Show save file dialog box bool?result = dlg.ShowDialog(); // Process save file dialog box results if (result == true) { // Save document string filename = dlg.FileName; var file = DataTableToExcelExporter.CreateInstance(); file.DataTableExport(table, filename, title); } }
public ActionResult SendResultQuery(string email = null) { var dataTable = Session["datatableForGrid"] as DataTable; if (email == null || dataTable == null || dataTable.Rows.Count == 0) { return(PartialView("SendResultQueryPartial")); } var excelExporter = DataTableToExcelExporter.CreateInstance(); var excelStream = excelExporter.DataTableExportToMemory(dataTable, "Result query"); SmtpMailer.Instance(WebConfigurationManager.OpenWebConfiguration("~/web.config")). SendMail(email, "Result query from QueryBuilder", "", excelStream); if (System.Web.HttpContext.Current.Request.UrlReferrer != null) { return(Redirect(System.Web.HttpContext.Current.Request.UrlReferrer.ToString())); } return(RedirectToAction("List")); }