public static Byte[] GenerateXLS(DashboardCollection datasource) { /* Call OpenOfficeXML need nuget package for epplus This can now be customize for each type of excel export, also we can make a abstract calls for data dumps My want abastrct it out os multiple worksheets can be created. */ using (ExcelPackage pck = new ExcelPackage()) { //Create the worksheet ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Dashboards"); // Build Excel title BuildTitle(ws); //By Teachers BuildTeachersTable(ws, datasource.Teachers); //By Homerooms BuildHomeroomsTable(ws, datasource.Homerooms); //By Violations BuildViolationsTable(ws, datasource.OffenseTypes); return pck.GetAsByteArray(); } }
public async System.Threading.Tasks.Task<ActionResult> Dashboard() { DashboardCollection coll = new DashboardCollection(); using (var connection = new MySqlConnection(ConfigurationManager.ConnectionStrings[Constants.ConnectionStringName].ConnectionString)) { await connection.OpenAsync(); var result = new OfficeVisitRepository(connection).GetOfficeVisitsByHomeroom(); var result2 = new OfficeVisitRepository(connection).GetOfficeVisitsByOffenseType(); var result3 = new OfficeVisitRepository(connection).GetOfficeVisitsByTeacher(); var result4 = new OfficeVisitRepository(connection).GetOfficeVisitsCountByWeek(); coll.Homerooms = (IEnumerable<OfficeVisitsByHomeroom>)result.Result.ToArray(); coll.OffenseTypes = (IEnumerable<OfficeVisitsByOffenseType>)result2.Result.ToArray(); coll.Teachers = (IEnumerable<OfficeVisitsByTeacher>)result3.Result.ToArray(); coll.ByWeek = (IEnumerable<OfficeVisitsCountsByWeek>)result4.Result.ToArray(); Session["Dashboard"] = coll; return View(coll); } }