Example #1
0
        public void AddSheet_SheetWithExtraExtendedProperties_Succeeds()
        {
            var fileInfo = GetXlsxTempFileInfo();

            try
            {
                using var s = new MagicSpreadsheet(fileInfo);

                var sheetOptions = new AddSheetOptions
                {
                    TableOptions = new TableOptions {
                        XlsxTableStyle = XlsxTableStyle.TableStyleDark1
                    }
                };

                s.AddSheet(new List <Extended <object> >
                {
                    new Extended <object>(new object(), new Dictionary <string, object?> {
                        { "Id", 10 },
                        { "My Name", "Ryan" }
                    })
                }, "Subscriptions", sheetOptions);
                s.Save();
            }
            finally
            {
                fileInfo.Delete();
            }
        }
Example #2
0
        public void AddSheet_SheetWithStyle_Succeeds()
        {
            var fileInfo = GetXlsxTempFileInfo();

            try
            {
                using var s = new MagicSpreadsheet(fileInfo);

                var sheetOptions = new AddSheetOptions
                {
                    TableOptions = new TableOptions
                    {
                        XlsxTableStyle = XlsxTableStyle.TableStyleDark1
                    }
                };

                s.AddSheet(new List <FunkyAnimal>
                {
                    new FunkyAnimal {
                        Id = 0, Name = "Old Woman", WeightKg = 60, Leg_Count = 2
                    },
                    new FunkyAnimal {
                        Id = 1, Name = "Horse", WeightKg = 200, Leg_Count = 4
                    },
                    new FunkyAnimal {
                        Id = 2, Name = "Cow", WeightKg = 100, Leg_Count = 4
                    },
                    new FunkyAnimal {
                        Id = 3, Name = "Dog", WeightKg = 50, Leg_Count = 4
                    },
                    new FunkyAnimal {
                        Id = 4, Name = "Cat", WeightKg = 25, Leg_Count = 4
                    },
                    new FunkyAnimal {
                        Id = 5, Name = "Mouse", WeightKg = 0.1, Leg_Count = 4
                    },
                    new FunkyAnimal {
                        Id = 7, Name = "Spider", WeightKg = 0.01, Leg_Count = 8
                    },
                    new FunkyAnimal {
                        Id = 8, Name = "Fly", WeightKg = 0.001, Leg_Count = 6
                    }
                }, "Animals", sheetOptions);
                s.Save();
            }
            finally
            {
                fileInfo.Delete();
            }
        }
Example #3
0
        public void ExcludeProperties_ListSpecified_CorrectProperties()
        {
            var fileInfo = GetXlsxTempFileInfo();

            try
            {
                var funkyAnimals = LoadSheetTests.GetFunkyAnimals();
                var options      = new AddSheetOptions
                {
                    TableOptions = new TableOptions
                    {
                        Name        = "FunkyAnimals",
                        DisplayName = "FunkyAnimals",
                    },
                    ExcludeProperties = new HashSet <string>
                    {
                        nameof(FunkyAnimal.Leg_Count),
                        nameof(FunkyAnimal.WeightKg),
                        nameof(FunkyAnimal.Description)
                    }
                };
                using (var s = new MagicSpreadsheet(fileInfo))
                {
                    s.AddSheet(funkyAnimals, "FunkyAnimals", options);
                    s.Save();
                }
                // Reload the values back in and verify only the included properties exist

                using (var s = new MagicSpreadsheet(fileInfo))
                {
                    s.Load();

                    var reloadedAnimals = s.GetExtendedList <SimpleAnimal>("Sheet1");
                    Assert.Equal(funkyAnimals.Count, reloadedAnimals.Count);
                    // Make sure there are no extra properties
                    Assert.All(reloadedAnimals, extendedAnimal => Assert.Empty(extendedAnimal.Properties));

                    // Make sure items exist for every row
                    Assert.All(reloadedAnimals, extendedAnimal => Assert.NotNull(extendedAnimal.Item));

                    // Make sure that there are no "default" values we know are NOT in the test data
                    Assert.All(reloadedAnimals, extendedAnimal => Assert.NotEqual(0, extendedAnimal.Item !.Id));
                    Assert.All(reloadedAnimals, extendedAnimal => Assert.NotEqual(string.Empty, extendedAnimal.Item !.Name));
                }
            }
            finally
            {
                fileInfo.Delete();
            }
        }
Example #4
0
        public void AddSheetOptions_SheetWithExtendedPropertiesUnsorted_Succeeds()
        {
            var fileInfo = GetXlsxTempFileInfo();

            try
            {
                using var s = new MagicSpreadsheet(fileInfo);

                var sheetOptions = new AddSheetOptions
                {
                    SortExtendedProperties = false
                };

                var animals = new Dictionary <string, object?> {
                    { "Type", "Hamster" },
                    { "Name", "Scruffy" }
                };

                s.AddSheet(new List <Extended <object> >
                {
                    new Extended <object>(new object(), animals)
                }, "Animals", sheetOptions);
                s.Save();

                // Reload the values back in and verify only the included properties exist

                s.Load();

                // TODO
                var reloadedAnimals = s.GetExtendedList <object>("Animals");
                //Assert.Equal(reloadedAnimals.[0].Key, "Type");
            }
            finally
            {
                fileInfo.Delete();
            }
        }
Example #5
0
        public void AddSheetOptions_CustomTableStyle_Succeeds()
        {
            var fileInfo = GetXlsxTempFileInfo();

            try
            {
                using var s = new MagicSpreadsheet(fileInfo, new Options
                {
                    TableStyles = new List <CustomTableStyle>
                    {
                        new CustomTableStyle
                        {
                            Name           = "My Table Style",
                            HeaderRowStyle = new TableRowStyle
                            {
                                BackgroundColor = Color.FromArgb(112, 48, 160),
                                FontColor       = Color.White,
                                FontWeight      = FontWeight.Bold
                            },
                            OddRowStyle = new TableRowStyle
                            {
                                BackgroundColor = Color.FromArgb(225, 204, 240),
                            },
                            EvenRowStyle = new TableRowStyle
                            {
                                BackgroundColor = Color.LightYellow,
                            },
                            WholeTableStyle = new TableRowStyle
                            {
                                InnerBorderColor = Color.Red,
                                OuterBorderColor = Color.Blue
                            },
                        }
                    }
                });

                var sheetOptions = new AddSheetOptions
                {
                    SortExtendedProperties = false,
                    TableOptions           = new TableOptions
                    {
                        CustomTableStyle = "My Table Style"
                    }
                };

                var scruffy = new Dictionary <string, object?> {
                    { "Type", "Hamster" },
                    { "Name", "Scruffy" }
                };
                var wuffy = new Dictionary <string, object?> {
                    { "Type", "Dog" },
                    { "Name", "Wuffy" }
                };
                var puffy = new Dictionary <string, object?> {
                    { "Type", "Fish" },
                    { "Name", "Puffy" }
                };
                var gruffy = new Dictionary <string, object?> {
                    { "Type", "Goat" },
                    { "Name", "Gruffy" }
                };

                s.AddSheet(new List <Extended <object> >
                {
                    new Extended <object>(new object(), scruffy),
                    new Extended <object>(new object(), wuffy),
                    new Extended <object>(new object(), puffy),
                    new Extended <object>(new object(), gruffy)
                }, "Animals", sheetOptions);
                s.Save();
            }
            finally
            {
                fileInfo.Delete();
            }
        }