public void TestTemplateTypeMapping() { { var path = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid().ToString()}.xlsx"); var templatePath = @"..\..\..\..\..\samples\xlsx\TestITemplateTypeAutoMapping.xlsx"; //1. By POCO var value = new TestIEnumerableTypePoco { @string = "string", @int = 123, @decimal = decimal.Parse("123.45"), @double = (double)123.33, @datetime = new DateTime(2021, 4, 1), @bool = true, @Guid = Guid.NewGuid() }; MiniExcel.SaveAsByTemplate(path, templatePath, value); var rows = MiniExcel.Query <TestIEnumerableTypePoco>(path).ToList(); Assert.Equal(value.@string, rows[0].@string); Assert.Equal(value.@int, rows[0].@int); Assert.Equal(value.@double, rows[0].@double); Assert.Equal(value.@decimal, rows[0].@decimal); Assert.Equal(value.@bool, rows[0].@bool); Assert.Equal(value.datetime, rows[0].datetime); Assert.Equal(value.Guid, rows[0].Guid); var demension = Helpers.GetFirstSheetDimensionRefValue(path); Assert.Equal("A1:G2", demension); } }
public void TestIEnumerableType() { { var path = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid().ToString()}.xlsx"); var templatePath = @"..\..\..\..\..\samples\xlsx\TestIEnumerableType.xlsx"; //1. By POCO var poco = new TestIEnumerableTypePoco { @string = "string", @int = 123, @decimal = decimal.Parse("123.45"), @double = (double)123.33, @datetime = new DateTime(2021, 4, 1), @bool = true, @Guid = Guid.NewGuid() }; var value = new { Ts = new[] { poco, new TestIEnumerableTypePoco { }, null, new TestIEnumerableTypePoco { }, poco } }; MiniExcel.SaveAsByTemplate(path, templatePath, value); var rows = MiniExcel.Query <TestIEnumerableTypePoco>(path).ToList(); Assert.Equal(poco.@string, rows[0].@string); Assert.Equal(poco.@int, rows[0].@int); Assert.Equal(poco.@double, rows[0].@double); Assert.Equal(poco.@decimal, rows[0].@decimal); Assert.Equal(poco.@bool, rows[0].@bool); Assert.Equal(poco.datetime, rows[0].datetime); Assert.Equal(poco.Guid, rows[0].Guid); Assert.Null(rows[1].@string); Assert.Null(rows[1].@int); Assert.Null(rows[1].@double); Assert.Null(rows[1].@decimal); Assert.Null(rows[1].@bool); Assert.Null(rows[1].datetime); Assert.Null(rows[1].Guid); // special input null but query is empty vo Assert.Null(rows[2].@string); Assert.Null(rows[2].@int); Assert.Null(rows[2].@double); Assert.Null(rows[2].@decimal); Assert.Null(rows[2].@bool); Assert.Null(rows[2].datetime); Assert.Null(rows[2].Guid); Assert.Null(rows[3].@string); Assert.Null(rows[3].@int); Assert.Null(rows[3].@double); Assert.Null(rows[3].@decimal); Assert.Null(rows[3].@bool); Assert.Null(rows[3].datetime); Assert.Null(rows[3].Guid); Assert.Equal(poco.@string, rows[4].@string); Assert.Equal(poco.@int, rows[4].@int); Assert.Equal(poco.@double, rows[4].@double); Assert.Equal(poco.@decimal, rows[4].@decimal); Assert.Equal(poco.@bool, rows[4].@bool); Assert.Equal(poco.datetime, rows[4].datetime); Assert.Equal(poco.Guid, rows[4].Guid); var demension = Helpers.GetFirstSheetDimensionRefValue(path); Assert.Equal("A1:G6", demension); } }