public void produceRoomTimetable() { int position = 0, hour = 1, count = 0; //string moduleFullName, moduleShortName, roomName, lecturerName = "", startPosition, endPosition; WebpageTermTimetable ttDetails = new WebpageTermTimetable(); SavingAndReading data = new SavingAndReading(); //data.ReadSystemList(); string docName = "TimetableTemplate.xlsx"; //var workbook = new XLWorkbook(docName); //var ws = workbook.Worksheet(1); List <Room> tempRoomList = new List <Room>(); data.ReadRoomFile("room.xml"); tempRoomList = SystemList.RoomsList; data.ReadSystemList(); //start to select each object from roomsList and print details foreach (Room e1 in SystemList.RoomsList) { var workbook = new XLWorkbook(docName); var ws = workbook.Worksheet(1); //if (e1.RoomName == tempRoomList[count].RoomName) { subHeader = e1.RoomName; for (int i = 0; i < 5; i++) { for (int j = 0; j < 9; j++) { if (e1.TtDimensionArray[i][j].HasSubject == true) { position = e1.TtDimensionArray[i][j].TermTTListPosition; ttDetails = SystemList.TermTimetableList[position]; var moduleFullName = ttDetails.ModuleFullName; var moduleShortName = ttDetails.ModuleShortName; var roomName = ttDetails.RoomName; var lecturerName = findLecturerName(ttDetails.LecturerID); hour = ttDetails.EndHour - ttDetails.StartHour; //start inserting details for each timetable //ProduceTT ptt = new ProduceTT(); //change the subHeader insertTextToSubHeader(roomName, ws); var startPosition = string.Format("{0}{1}", (char)(j + 66), (i + 4)); var endPosition = string.Format("{0}{1}", (char)(j + 66 + hour - 1), (i + 4)); //if a module over one hour then merge the cells if (hour > 1) { mergeCells(startPosition, endPosition, ws); insertDetailsToCells(moduleFullName, moduleShortName, lecturerName, ws, startPosition, endPosition); } else { insertDetailsToCells(moduleFullName, moduleShortName, lecturerName, ws, startPosition, endPosition); } } } createFolder(); string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Timetable System"); workbook.SaveAs(path + "\\Timetable\\" + e1.RoomName + ".xlsx"); } colorSelectionList.Clear(); count++; } } }