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()); } }