Example #1
0
        public void TestCreateExcel()
        {
            ExcelProvider <Product> excel = new ExcelProvider <Product>();

            // Empty list test
            var mem = excel.CreateExcel(new List <Product>());

            ValidateExcel(mem, true);

            // Normal list
            var products2 = new List <Product>
            {
                new Product
                {
                    Id         = 1,
                    Name       = "Test",
                    LastUpdate = DateTime.Now,
                    Photo      = "test.photo",
                    Price      = 1
                },
                new Product
                {
                    Id         = 2,
                    Name       = "Test2",
                    LastUpdate = DateTime.Now,
                    Photo      = "test2.photo",
                    Price      = 2
                }
            };
            var mem2 = excel.CreateExcel(products2);

            // Different list
            var sheet = ValidateExcel(mem2);

            Assert.AreEqual(sheet.Cell(2, 1).Value, products2[0].Name);

            var testList = new List <TestClass>
            {
                new TestClass
                {
                    Byte = 2,
                    Int  = 3,
                    Long = 4
                }
            };
            ExcelProvider <TestClass> excelTestClass = new ExcelProvider <TestClass>();
            var mem3   = excelTestClass.CreateExcel(testList);
            var sheet3 = ValidateExcel(mem3);

            Assert.AreEqual(Convert.ToInt32(sheet3.Cell(2, 1).Value), testList[0].Int);
        }
Example #2
0
        public async Task <IActionResult> SearchExcel(string name)
        {
            var products = await SearchProducts(name);

            ExcelProvider <ProductOutputModel> excel = new ExcelProvider <ProductOutputModel>();
            var productsExcelStream = excel.CreateExcel(products);

            return(File(productsExcelStream, "application/ms-excel", "Catalog.xlsx"));
        }