Selaa lähdekoodia

If empty file let's return empty

Piotr Czajkowski 3 päivää sitten
vanhempi
commit
ec984f919e
2 muutettua tiedostoa jossa 13 lisäystä ja 1 poistoa
  1. 3 1
      ExcelORM/ExcelORM/ExcelReader.cs
  2. 10 0
      ExcelORM/ExcelORMTests/ReaderTests.cs

+ 3 - 1
ExcelORM/ExcelORM/ExcelReader.cs

@@ -67,7 +67,9 @@ public class ExcelReader : IDisposable
 
         var firstRow = worksheet.Row((int)startFrom);
         if (firstRow.IsEmpty())
-            firstRow = worksheet.RowsUsed().First(x => x.RowNumber() > startFrom && !x.IsEmpty());
+            firstRow = worksheet.RowsUsed().FirstOrDefault(x => x.RowNumber() > startFrom && !x.IsEmpty());
+        
+        if (firstRow == null || firstRow.IsEmpty()) yield break;
 
         var mapping = Mapping.MapProperties<T>(firstRow.CellsUsed());
         if (mapping == null) yield break;

+ 10 - 0
ExcelORM/ExcelORMTests/ReaderTests.cs

@@ -135,4 +135,14 @@ public class ReaderTests
         var results = reader.Read<TestAdditionalTypesNullable>().ToArray();
         Assert.NotEmpty(results);
     }
+    
+    private const string EmptyFileForAppend = "testFiles/emptyForAppend.xlsx";
+    
+    [Fact]
+    public void ReadEmptyFile()
+    {
+        using var reader = new ExcelReader(EmptyFileForAppend);
+        var results = reader.Read<Test>().ToArray();
+        Assert.Empty(results);
+    }
 }