public void SkiperAuto()
        {
            int countShouldBe = 4;

            using (var memstream = new MemoryStream())
            {
                var     book  = new XlBook();
                XlSheet sheet = book.AddSheet("test");

                int skip = rnd.Next(4) + 1;
                for (int i = 0; i < skip; i++)
                {
                    sheet.AddCell($"Caption{i + 1}", $"A{i + 1}", XlContentType.SharedString);
                }

                sheet.AddCell("Поле 1", $"A{++skip}", XlContentType.SharedString);
                sheet.AddCell("Какая-то дата", $"B{skip}", XlContentType.SharedString);
                sheet.AddCell("Мультизагаловок1", $"C{skip}", XlContentType.SharedString);
                sheet.AddCell("дробь", $"E{skip}", XlContentType.SharedString);

                for (int i = ++skip; i < skip + countShouldBe; i++)
                {
                    sheet.AddCell(i, $"A{i}", XlContentType.Integer);
                    sheet.AddCell(DateTime.Now, $"B{i}", XlContentType.Date);
                    sheet.AddCell($"Какая-то строка{i}", $"C{i}", XlContentType.SharedString);
                    sheet.AddCell($"0.1{i}", $"E{i}", XlContentType.Double);
                }

                XlConverter.FromBook(book).SaveToStream(memstream);
                XLOCReader convertor = XlConverter.FromStream(memstream, new XLOCConfiguration {
                    SkipMode = SkipModeEnum.Auto, SkipCount = 1
                });
                Assert.AreEqual(countShouldBe, convertor.ReadToArray <TestExcelClass>().Count());
            }
        }
        public void SkiperManual()
        {
            int countShouldBe = 4;

            using (var memstream = new MemoryStream())
            {
                var     book  = new XlBook();
                XlSheet sheet = book.AddSheet("test");
                sheet.AddCell("Caption", "A1", XlContentType.SharedString);
                sheet.AddCell("Caption2", "A2", XlContentType.SharedString);

                sheet.AddCell("Поле 1", "A3", XlContentType.SharedString);
                sheet.AddCell("Какая-то дата", "B3", XlContentType.SharedString);
                sheet.AddCell("Мультизагаловок2", "D3", XlContentType.SharedString);
                sheet.AddCell("дробь", "E3", XlContentType.SharedString);

                for (int i = 4; i < 4 + countShouldBe; i++)
                {
                    sheet.AddCell(i, $"A{i}", XlContentType.Integer);
                    sheet.AddCell(DateTime.Now, $"B{i}", XlContentType.Date);
                    sheet.AddCell($"Какая-то строка{i}", $"C{i}", XlContentType.SharedString);
                    sheet.AddCell($"0.1{i}", $"E{i}", XlContentType.Double);
                }

                XlConverter.FromBook(book).SaveToStream(memstream);
                XLOCReader convertor = XlConverter.FromStream(memstream, new XLOCConfiguration {
                    SkipMode = SkipModeEnum.Manual, SkipCount = 2
                });
                Assert.AreEqual(countShouldBe, convertor.ReadToArray <TestExcelClass>().Count());
            }
        }
        public void ReadToGroup_DifferentClasses()
        {
            using (var ms = new MemoryStream())
            {
                var book = new XlBook();

                XlSheet sheet = book.AddSheet("Sheet1");

                char col = 'B';
                sheet.AddCell("Поле 1", "A1", XlContentType.SharedString);
                foreach (FieldGenerator item in fields)
                {
                    sheet.AddCell(item.Caption, $"{item.Col = col++}1", XlContentType.SharedString);
                }

                for (int i = 2; i < 5; i++)
                {
                    foreach (FieldGenerator item in fields)
                    {
                        sheet.AddCell(item.Filler(i), $"{item.Col}{i}", item.contentType);
                    }
                }

                sheet = book.AddSheet("Sheet2");
                sheet.AddCell("MyProperty", "A1", XlContentType.SharedString);
                sheet.AddCell("Test2UniqueField", "B1", XlContentType.SharedString);

                for (int i = 2; i < 5; i++)
                {
                    sheet.AddCell(i, $"A{i}", XlContentType.Integer);
                    sheet.AddCell(i * 2, $"B{i}", XlContentType.Integer);
                }

                XlConverter.FromBook(book).SaveToStream(ms);
                XLOCReader reader = XlConverter.FromStream(ms, new XLOCConfiguration {
                });

                IEnumerable <IGrouping <SheetIdentifier, TestExcelClass> > res1 = reader.ReadToGroup <TestExcelClass>();
                Assert.AreEqual(1, res1.Count(x => x.Any()));
                Assert.AreEqual(3, res1.Single(x => x.Any()).Count());

                IEnumerable <IGrouping <SheetIdentifier, TestExcelClass2> > res2 = reader.ReadToGroup <TestExcelClass2>();
                Assert.AreEqual(1, res2.Count(x => x.Any()));
                Assert.AreEqual(3, res2.Single(x => x.Any()).Count());

                Assert.AreEqual(3, reader.ReadToEnumerable <TestExcelClass>().Count());
                Assert.AreEqual(3, reader.ReadToEnumerable <TestExcelClass2>().Count());
            }
        }