|
Controller:
using Syncfusion.EJ2.Base;
using Syncfusion.XlsIO;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Syncfusion.EJ2.Grids;
using Newtonsoft.Json;
namespace EJ2Grid.Controllers
{
public class ExportModel // Created the model class to Deserialize the GridModel
{
public List<GridColumns> Columns { get; set; }
public DataManagerRequest Queries { get; set; }
}
public class HomeController : Controller
{
public static List<Orders> order = new List<Orders>();
public void ExcelExport(string GridModel)
{
ExportModel exportModel = new ExportModel();
exportModel = (ExportModel)JsonConvert.DeserializeObject(GridModel, typeof(ExportModel)); // Deserialized the GridModel
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Excel2013;
IWorkbook workbook = application.Workbooks.Create(1);
IWorksheet worksheet = workbook.Worksheets[0];
IEnumerable DataSource = order;
if (exportModel.Queries.Where != null)
{
DataOperations operation = new DataOperations();
if (exportModel.Queries.Where != null && exportModel.Queries.Where.Count > 0) //Filtering
{
DataSource = operation.PerformFiltering(DataSource, exportModel.Queries.Where, exportModel.Queries.Where[0].Operator); // Filtered the export datasource based the filter query
}
}
//Import the data to worksheet
IList<Orders> reports = DataSource.AsQueryable().Cast<Orders>().ToList();
worksheet.ImportData(reports, 2, 1, true);
workbook.SaveAs("Excel.xlsx", HttpContext.ApplicationInstance.Response, ExcelDownloadType.Open);
}
}
}
} |