Browse Source

Added ReadAll

Piotr Czajkowski 2 months ago
parent
commit
dd7cede41c

+ 13 - 0
ExcelORM/ExcelORM/ExcelDynamicReader.cs

@@ -60,6 +60,19 @@ public class ExcelDynamicReader
             yield return value;
     }
 
+    public IEnumerable<DynamicWorksheet> ReadAll(uint startFrom = 1, uint skip = 0)
+    {
+        foreach (var worksheet in xlWorkbook.Worksheets)
+        {
+            yield return new DynamicWorksheet
+            {
+                Name = worksheet.Name,
+                Position = worksheet.Position,
+                Cells = Read(worksheet, startFrom, skip)
+            };
+        }
+    }
+
     private IEnumerable<List<DynamicCell>> Read(IXLWorksheet? worksheet, uint startFrom = 1, uint skip = 0)
     {
         if (worksheet == null) yield break;

+ 9 - 0
ExcelORM/ExcelORM/Models/DynamicWorksheet.cs

@@ -0,0 +1,9 @@
+namespace ExcelORM.Models
+{
+    public record DynamicWorksheet
+    {
+        public string? Name { get; set; }
+        public int Position { get; set; }
+        public IEnumerable<List<DynamicCell>>? Cells { get; set; }
+    }
+}

+ 9 - 0
ExcelORM/ExcelORMTests/DynamicReaderTests.cs

@@ -6,6 +6,7 @@ public class DynamicReaderTests
 {
     private const string RegularFile = "testFiles/first.xlsx";
     private const string DifferentTypesFile = "testFiles/differentTypes.xlsx";
+    private const string MultipleSheetsFile = "testFiles/multipleSheets.xlsx";
 
     [Fact]
     public void Read()
@@ -29,4 +30,12 @@ public class DynamicReaderTests
         Assert.Equal(typeof(double?), first[3].Type);
         Assert.Equal(typeof(double?), first[4].Type);
     }
+
+    [Fact]
+    public void ReadAll()
+    {
+        var reader = new ExcelDynamicReader(MultipleSheetsFile);
+        var results = reader.ReadAll().ToArray();
+        Assert.NotEmpty(results);
+    }
 }