예제 #1
0
        public void WriteFileWithFormulaSucceeded()
        {
            //***** GIVEN
            string outputFileName = "XlsxFileWriterTest_WriteFileWithFormulaSucceeded.xlsx";
            var    table          = new ExcelTableDescriptor()
            {
                Name      = "TestTable",
                SheetName = "Sheet01",
                Columns   = new List <ExcelColumnDescriptor>()
                {
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL1", HeaderText = "COl #1", ColumnType = ExcelColumnDescriptor.EnumColumnType.Number
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL2", HeaderText = "COl #2", ColumnType = ExcelColumnDescriptor.EnumColumnType.String
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL3", HeaderText = "COl #3", ColumnType = ExcelColumnDescriptor.EnumColumnType.Boolean
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL4", HeaderText = "COl #4", ColumnType = ExcelColumnDescriptor.EnumColumnType.String
                    }
                }
            };
            var tableData = new List <ExcelDataRowDescriptor>()
            {
                new ExcelDataRowDescriptor()
                {
                    RowNumber = 1
                }.AddCell("COL1", 1).AddCell("COL2", "title #1").AddCell("COL3", true).AddCell("COL4", DateTime.Now.ToString()),
                new ExcelDataRowDescriptor()
                {
                    RowNumber = 2
                }.AddCell("COL1", 2).AddCell("COL2", "title #2").AddCell("COL3", null).AddCell("COL4", null)
            };

            var table2 = new ExcelTableDescriptor()
            {
                Name      = "FormulaTable",
                SheetName = "Sheet02",
                Columns   = new List <ExcelColumnDescriptor>()
                {
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL1", HeaderText = "ID", ColumnType = ExcelColumnDescriptor.EnumColumnType.Number
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL2", HeaderText = "ID2", ColumnType = ExcelColumnDescriptor.EnumColumnType.Number
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL3", HeaderText = "Title", ColumnType = ExcelColumnDescriptor.EnumColumnType.Formula
                    },
                }
            };
            var fixedPartOfFormula = "VLOOKUP($A{0},'{1}'!$A$1:$Z$1000,{2})";             //=VLOOKUP(A2;Sheet01!A1:D5; 2)
            var tableData2         = new List <ExcelDataRowDescriptor>()
            {
                new ExcelDataRowDescriptor()
                {
                    RowNumber = 1
                }
                .AddCell("COL1", 1)
                .AddCell("COL2", 4)
                .AddCell("COL3", String.Format(fixedPartOfFormula, 2, table.SheetName, 2)),
                new ExcelDataRowDescriptor()
                {
                    RowNumber = 1
                }
                .AddCell("COL1", 1)
                .AddCell("COL2", 2)
                .AddCell("COL3", String.Format(fixedPartOfFormula, 3, table.SheetName, 2))
            };

            //***** WHEN
            ExcelContentEditor editor = new ExcelContentEditor(CultureInfo.InvariantCulture, "dd/MM/yyyy")
                                        .SelectFolder(this.OutputFolder)
                                        .AddSheetTable(table)
                                        .FillTable(table.Name, tableData)
                                        .AddSheetTable(table2)
                                        .FillTable(table2.Name, tableData2)
                                        .SaveAs(outputFileName);

            //this._SavedFiles.Add(outputFileName);

            //***** ASSERT
            Assert.IsTrue(File.Exists(Path.Combine(OutputFolder, outputFileName)), $"Unable to find file {outputFileName} in folder {OutputFolder}");
        }
예제 #2
0
        public void WriteFileSucceeded()
        {
            //***** GIVEN
            string outputFileName = "XlsxFileWriterTest_WriteFileSucceeded.xlsx";
            var    table          = new ExcelTableDescriptor()
            {
                Name      = "TestTable",
                SheetName = "Sheet01",
                Columns   = new List <ExcelColumnDescriptor>()
                {
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL1", HeaderText = "COl #1", ColumnType = ExcelColumnDescriptor.EnumColumnType.String
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL2", HeaderText = "COl #2", ColumnType = ExcelColumnDescriptor.EnumColumnType.Number
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL3", HeaderText = "COl #3", ColumnType = ExcelColumnDescriptor.EnumColumnType.Boolean
                    },
                    new ExcelColumnDescriptor()
                    {
                        Name = "COL4", HeaderText = "COl #4", ColumnType = ExcelColumnDescriptor.EnumColumnType.String
                    }
                }
            };
            var tableData = new List <ExcelDataRowDescriptor>()
            {
                new ExcelDataRowDescriptor()
                {
                    RowNumber = 1
                }.AddCell("COL1", "asjhg").AddCell("COL2", 22).AddCell("COL3", true).AddCell("COL4", DateTime.Now.ToString()),
                new ExcelDataRowDescriptor()
                {
                    RowNumber = 2
                }.AddCell("COL1", "asjhg").AddCell("COL2", 22.5).AddCell("COL3", null).AddCell("COL4", null)
            };

            //***** WHEN
            ExcelContentEditor editor = new ExcelContentEditor(CultureInfo.InvariantCulture, "dd/MM/yyyy")
                                        .SelectFolder(this.OutputFolder)
                                        .AddSheetTable(table)
                                        .FillTable(table.Name, tableData)
                                        .SaveAs(outputFileName);

            this._SavedFiles.Add(outputFileName);

            //***** ASSERT
            Assert.IsTrue(File.Exists(Path.Combine(OutputFolder, outputFileName)), $"Unable to find file {outputFileName} in folder {OutputFolder}");

            ExcelContentEditor reader = new ExcelContentEditor(CultureInfo.InvariantCulture, "dd/MM/yyyy")
                                        .SelectFile(this.OutputFolder, outputFileName)
                                        .OpenFile()
                                        .ReadTableFromSheet(table.SheetName, new DataTableDelimiter()
            {
                MaxColumnNumber = table.Columns.Count
            });

            Assert.IsNotNull(reader.ReadData as DataTable, "NUll data reade from file " + outputFileName);
            Assert.AreEqual(2, (reader.ReadData as DataTable).Rows.Count);
        }