Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }