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");
        }
Beispiel #2
0
        /// <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"));
        }