public List <SubjectMarks> GetStudentMarksByRollNumber(string className, string rollNumber)
        {
            Worksheet = Workbook.Worksheets[$"{ClassSheetNamePrefix} {className}"];
            if (Worksheet == null)
            {
                return(new List <SubjectMarks>());
            }
            Range = Worksheet.UsedRange;
            int rowCount    = Range.Rows.Count;
            int columnCount = Range.Columns.Count;

            int row = 0;

            // get row index for roll number
            for (row = 3; row <= rowCount; row++)
            {
                // column 2 for roll number
                var cellValue = Range.Cells[row, 2].Value2;
                if (cellValue != null)
                {
                    if (Convert.ToString(cellValue) == rollNumber)
                    {
                        break;
                    }
                }
            }

            List <SubjectMarks> subjectMarksList = new List <SubjectMarks>();

            // get subject columns, subject starts from column 4
            for (int column = 4; column <= columnCount; column++)
            {
                var subjectName = Range.Cells[1, column].Value2;
                if (subjectName == null)
                {
                    continue;
                }

                var marks = Range.Cells[row, column].Value2;
                if (marks == null)
                {
                    continue;
                }

                var subjectMarks = new SubjectMarks
                {
                    Subject = Convert.ToString(subjectName),
                    Marks   = marks.ToString()
                };

                //var subjectMarks = new SubjectMarks
                //{
                //    Subject = Convert.ToString(subjectName),
                //    Marks = Convert.ToDecimal(Range.Cells[row, column].Value2)
                //};
                subjectMarksList.Add(subjectMarks);
            }
            return(subjectMarksList);
        }
        public List <SubjectMarks> GetSubjectsForClass(string className)
        {
            Worksheet = Workbook.Worksheets[InitializeSheetName];
            if (Worksheet == null)
            {
                return(new List <SubjectMarks>());
            }

            Range = Worksheet.UsedRange;

            int rowCount = Range.Rows.Count;

            string @class = string.Empty;
            List <SubjectMarks> subjectMarks = new List <SubjectMarks>();

            for (int row = 2; row < rowCount; row++)
            {
                // columnn 1 for class name
                var cellValue = Range.Cells[row, 1].Value2;
                if (cellValue != null)
                {
                    @class = Convert.ToString(cellValue);
                }

                if (@class != className)
                {
                    continue;
                }

                // column 2 for Subject name
                var subject = Range.Cells[row, 2].Value2;
                if (subject == null)
                {
                    continue;
                }

                var subjectMark = new SubjectMarks
                {
                    Subject = Convert.ToString(subject)
                };
                subjectMarks.Add(subjectMark);
            }
            return(subjectMarks);
        }