Parcourir la source

Added WriteWithAppendWithoutName

Piotr Czajkowski il y a 6 mois
Parent
commit
6c2b41a1ad
2 fichiers modifiés avec 24 ajouts et 1 suppressions
  1. 3 1
      ExcelORM/ExcelORM/ExcelWriter.cs
  2. 21 0
      ExcelORM/ExcelORMTests/WriterTests.cs

+ 3 - 1
ExcelORM/ExcelORM/ExcelWriter.cs

@@ -28,8 +28,10 @@ public class ExcelWriter
     public void Write<T>(IEnumerable<T> values, string? worksheetName, bool append = false) where T : class, new()
     {
         var xlWorksheet = xlWorkbook.Worksheets.FirstOrDefault(x => x.Name.Equals(worksheetName, StringComparison.InvariantCultureIgnoreCase));
+        
         xlWorksheet ??= !string.IsNullOrWhiteSpace(worksheetName) ?
-            xlWorkbook.AddWorksheet(worksheetName) : xlWorkbook.AddWorksheet();
+            xlWorkbook.AddWorksheet(worksheetName)
+            : xlWorkbook.Worksheets.Count == 0 ? xlWorkbook.AddWorksheet() : xlWorkbook.Worksheets.First();
 
         Write(values, xlWorksheet, append);
     }

+ 21 - 0
ExcelORM/ExcelORMTests/WriterTests.cs

@@ -38,4 +38,25 @@ public class WriterTests
         Assert.Equal(5, reader.Read<Test>(worksheetName).Count());
         File.Delete(testFile);
     }
+    
+    [Fact]
+    public void WriteWithAppendWithoutName()
+    {
+        var testFile = Path.GetRandomFileName();
+        testFile = Path.ChangeExtension(testFile, "xlsx");
+
+        var writer = new ExcelWriter(testFile);
+        writer.Write(arrayOfThree, null);
+        writer.SaveAs(testFile);
+
+        var reader = new ExcelReader(testFile);
+        Assert.Equal(3, reader.Read<Test>().Count());
+
+        writer.Write(listOfTwo, null, true);
+        writer.SaveAs(testFile);
+        
+        reader = new ExcelReader(testFile);
+        Assert.Equal(5, reader.Read<Test>().Count());
+        File.Delete(testFile);
+    }
 }