Example #1
0
        public new Task <DataTable> GetTable(int tbl, string _filename)
        {
            return(Task.Run(() => {
                GetTableArrayProgress(0, 100);
                var wrkBook = new XLWorkbook(_filename);
                var table = new DataTable();
                var wrkSheet = wrkBook.Worksheets.ToArray()[tbl];
                IXLTable xlTable = wrkSheet.Range(wrkSheet.Cell(1, 1), wrkSheet.LastCellUsed()).AsTable();
                foreach (IXLTableField col in xlTable.Fields)
                {
                    table.Columns.Add(col.Name);
                }
                int rowsCount = xlTable.DataRange.RowCount();
                int currentRow = 0;
                xlTable.DataRange.Rows(c => true)
                .ForEach(xrow => {
                    var row = table.NewRow();
                    int cellsCount = xrow.Cells().Count();
                    for (int i = 1; i <= cellsCount; i++)
                    {
                        row[i - 1] = xrow.Cell(i).Value;
                    }
                    table.Rows.Add(row);
                    GetTableArrayProgress(currentRow++, rowsCount);
                });

                wrkBook.Dispose();
                return table;
            }));
        }
Example #2
0
        public void TableInsertBelowFromRows()
        {
            var          wb = new XLWorkbook();
            IXLWorksheet ws = wb.AddWorksheet("Sheet1");

            ws.FirstCell().SetValue("Value");

            IXLTable table = ws.Range("A1:A2").CreateTable();

            table.SetShowTotalsRow()
            .Field(0).TotalsRowFunction = XLTotalsRowFunction.Sum;

            IXLTableRow row = table.DataRange.FirstRow();

            row.Field("Value").Value = 1;
            row = row.InsertRowsBelow(1).First();
            row.Field("Value").Value = 2;
            row = row.InsertRowsBelow(1).First();
            row.Field("Value").Value = 3;

            Assert.AreEqual(1, ws.Cell(2, 1).GetDouble());
            Assert.AreEqual(2, ws.Cell(3, 1).GetDouble());
            Assert.AreEqual(3, ws.Cell(4, 1).GetDouble());

            //wb.SaveAs(@"D:\Excel Files\ForTesting\Sandbox.xlsx");
        }
Example #3
0
        public DelegateTableRow(IXLTable table, IXLRangeRow row)
        {
            string?FindFieldValue(string name)
            {
                var colNumber = table.FindColumn(col => col.FirstCell().Value.ToString() == name).ColumnNumber();

                return(row.Cell(colNumber).GetValue <string?>());
            }

            string?FindNullableFieldValue(string name)
            {
                var cellValue = FindFieldValue(name);

                return(!string.IsNullOrWhiteSpace(cellValue) ? cellValue : null);
            }

            RowNumber       = row.RowNumber();
            CandidateNumber = FindFieldValue("DelegateID");
            LastName        = FindFieldValue("LastName");
            FirstName       = FindFieldValue("FirstName");
            JobGroupId      = int.TryParse(FindFieldValue("JobGroupID"), out var jobGroupId) ? jobGroupId : (int?)null;
            Active          = bool.TryParse(FindFieldValue("Active"), out var active) ? active : (bool?)null;
            Answer1         = FindFieldValue("Answer1");
            Answer2         = FindFieldValue("Answer2");
            Answer3         = FindFieldValue("Answer3");
            Answer4         = FindFieldValue("Answer4");
            Answer5         = FindFieldValue("Answer5");
            Answer6         = FindFieldValue("Answer6");
            AliasId         = FindFieldValue("AliasID");
            Email           = FindFieldValue("EmailAddress")?.Trim();
            HasPrnRawValue  = FindFieldValue("HasPRN");
            HasPrn          = bool.TryParse(HasPrnRawValue, out var hasPrn) ? hasPrn : (bool?)null;
            Prn             = FindNullableFieldValue("PRN");
            RowStatus       = RowStatus.NotYetProcessed;
        }
Example #4
0
        /// <summary>
        /// Добавить лист со сводной таблицей
        /// </summary>
        /// <param name="wb">книга для добавления листа</param>
        /// <param name="table">данные для сводной таблицы</param>
        private void AddPivotTable(XLWorkbook wb, IXLTable table)
        {
            using (var ws = wb.Worksheets.Add("Сводная таблица"))
            {
                // После добавления фильтров таблицы pt.ReportFilters.Add сгенерированный файл при открытии выдавал ошибку
                // Решение: https://closedxml.codeplex.com/discussions/640419
                //var pt = ws.PivotTables.AddNew("Сводная_таблица", ws.Cell(1, 1), table);
                var pt = ws.PivotTables.AddNew("Сводная_таблица", ws.Cell(4, 1), table);

                pt.ReportFilters.Add("Страна");
                pt.ReportFilters.Add("Регион");
                pt.ReportFilters.Add("Продукция");

                pt.RowLabels.Add("Компания");

                pt.ColumnLabels.Add("Месяц");

                pt.Values.Add("Сумма").NumberFormat.NumberFormatId = 3;

                // TODO: автоподбор ширины колонок в сводной таблице не работает
                //ws.Columns().AdjustToContents();
                ws.Column(1).Width     = 50;
                ws.Columns(2, 5).Width = 15;
            }
        }
Example #5
0
        private void AssertTablesAreEqual(IXLTable table1, IXLTable table2)
        {
            Assert.AreEqual(table1.RangeAddress.ToString(XLReferenceStyle.A1, false), table2.RangeAddress.ToString(XLReferenceStyle.A1, false));
            Assert.AreEqual(table1.Fields.Count(), table2.Fields.Count());
            for (int j = 0; j < table1.Fields.Count(); j++)
            {
                var originalField = table1.Fields.ElementAt(j);
                var copyField     = table2.Fields.ElementAt(j);
                Assert.AreEqual(originalField.Name, copyField.Name);
                if (table1.ShowTotalsRow)
                {
                    Assert.AreEqual(originalField.TotalsRowFormulaA1, copyField.TotalsRowFormulaA1);
                    Assert.AreEqual(originalField.TotalsRowFunction, copyField.TotalsRowFunction);
                }
            }

            Assert.AreEqual(table1.Name, table2.Name);
            Assert.AreEqual(table1.ShowAutoFilter, table2.ShowAutoFilter);
            Assert.AreEqual(table1.ShowColumnStripes, table2.ShowColumnStripes);
            Assert.AreEqual(table1.ShowHeaderRow, table2.ShowHeaderRow);
            Assert.AreEqual(table1.ShowRowStripes, table2.ShowRowStripes);
            Assert.AreEqual(table1.ShowTotalsRow, table2.ShowTotalsRow);
            Assert.AreEqual((table1.Style as XLStyle).Value, (table2.Style as XLStyle).Value);
            Assert.AreEqual(table1.Theme, table2.Theme);
        }
Example #6
0
        public void AutoFilterExpandsWithTable()
        {
            using (var wb = new XLWorkbook())
            {
                using (IXLWorksheet ws = wb.Worksheets.Add("Sheet1"))
                {
                    ws.FirstCell().SetValue("Categories")
                    .CellBelow().SetValue("1")
                    .CellBelow().SetValue("2");

                    IXLTable table = ws.RangeUsed().CreateTable();

                    var listOfArr = new List <Int32>();
                    listOfArr.Add(3);
                    listOfArr.Add(4);
                    listOfArr.Add(5);
                    listOfArr.Add(6);

                    table.DataRange.InsertRowsBelow(listOfArr.Count - table.DataRange.RowCount());
                    table.DataRange.FirstCell().InsertData(listOfArr);

                    Assert.AreEqual("A1:A5", table.AutoFilter.Range.RangeAddress.ToStringRelative());
                }
            }
        }
Example #7
0
        public void SavingLoadingTableWithNewLineInHeader2()
        {
            using (var wb = new XLWorkbook())
            {
                IXLWorksheet ws = wb.Worksheets.Add("Test");

                var    dt         = new DataTable();
                string columnName = "Line1" + Environment.NewLine + "Line2";
                dt.Columns.Add(columnName);

                DataRow dr = dt.NewRow();
                dr[columnName] = "some text";
                dt.Rows.Add(dr);
                ws.Cell(1, 1).InsertTable(dt);

                IXLTable table1     = ws.Table(0);
                string   fieldName1 = table1.Field(0).Name;
                Assert.AreEqual(columnName, fieldName1);

                using (var ms = new MemoryStream())
                {
                    wb.SaveAs(ms, true);
                    var          wb2        = new XLWorkbook(ms);
                    IXLWorksheet ws2        = wb2.Worksheet(1);
                    IXLTable     table2     = ws2.Table(0);
                    string       fieldName2 = table2.Field(0).Name;
                    Assert.AreEqual("Line1\nLine2", fieldName2);
                }
            }
        }
Example #8
0
 private void CreateTableTotalSum(IXLTable table)
 {
     table.ShowTotalsRow = true;
     foreach (var field in table.Fields)
     {
         field.TotalsRowFunction = XLTotalsRowFunction.Sum;
     }
 }
Example #9
0
        private string getHeaderTratado(IXLTable tabela, string campoPesq)
        {
            var campoRetorno = tabela.Fields.Select(campo => campo.HeaderCell.GetString())
                               .ToList()
                               .Find(header => string.Equals(header.Trim().ToLower(), campoPesq.Trim().ToLower()));

            return(campoRetorno);
        }
Example #10
0
        public IDictionary <ExcelDataType, object> ReadExcelNamedRange(IXLWorkbook workbook, string namedRange)
        {
            IXLNamedRange range = workbook.NamedRange(namedRange);

            if (range == null)
            {
                throw new ClosedXMLReadException($"There is no named range called {namedRange} in this workbook");
            }

            int count = range.Ranges.First().Cells().Count();

            //if solo then don't return collection.
            if (count.Equals(1))
            {
                IXLCell cell = range.Ranges.First().Cells().First();
                switch (cell.DataType)
                {
                case XLDataType.DateTime:
                    return(new Dictionary <ExcelDataType, object>
                    {
                        { ExcelDataType.Numeric, cell.GetDateTime().ToOADate() }
                    });

                case XLDataType.Number:
                    return(new Dictionary <ExcelDataType, object>
                    {
                        { ExcelDataType.Numeric, cell.GetDouble() }
                    });

                case XLDataType.Text:
                    string textValue = GetSingleCellTextValue(cell);
                    KeyValuePair <ExcelDataType, object> parsed = ParseString(textValue);

                    switch (parsed.Key)
                    {
                    case ExcelDataType.Numeric:
                        return(new Dictionary <ExcelDataType, object>
                        {
                            { ExcelDataType.Numeric, (double)parsed.Value }
                        });

                    case ExcelDataType.Text:
                        string[,] array = new string[1, 1];
                        array[0, 0]     = textValue;
                        return(new Dictionary <ExcelDataType, object>
                        {
                            { ExcelDataType.Text, array }
                        });

                    default:
                        throw new NotImplementedException("I haven't implemented formulas yet");
                    }
                }
            }
            IXLTable table = range.Ranges.First().AsTable();

            return(ReadTable(table));
        }
Example #11
0
        private int getHeaderIndex(IXLTable tabela, string campoPesq)
        {
            var index = tabela.Fields.Select(campo => campo)
                        .ToList()
                        .Find(header => string.Equals(header.Name.Trim().ToLower(), campoPesq.Trim().ToLower()))
                        ?.Index;

            return(index.HasValue ? index.Value : -1);
        }
        public ActionResult ExportDataToExcel(DataTable dtExcelData, string sheetName, string fileNameWithoutExtension, bool totalRequired = true, bool passwordRequired = true)
        {
            using (XLWorkbook wb = new XLWorkbook())
            {
                sheetName = sheetName.Replace(" ", "_");
                fileNameWithoutExtension = fileNameWithoutExtension.Replace(" ", "_");

                dtExcelData.TableName = sheetName;

                IXLWorksheet workSheet = wb.Worksheets.Add(dtExcelData);

                IXLRow row = workSheet.Row(dtExcelData.Rows.Count + 1);

                IXLRange range   = workSheet.RangeUsed();
                IXLTable xlTable = range.AsTable();

                if (totalRequired)
                {
                    string colLetterForSNo = GetExcelColumnLetter(xlTable, "#");

                    if (!string.IsNullOrEmpty(colLetterForSNo))
                    {
                        row.Cell(colLetterForSNo).Value = string.Empty;
                    }

                    string colLetterForDaysPresent = GetExcelColumnLetter(xlTable, "Days Present");
                    if (!string.IsNullOrEmpty(colLetterForDaysPresent))
                    {
                        row.Cell(colLetterForDaysPresent).Value = string.Empty;
                    }
                }

                wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                wb.Style.Font.Bold            = true;

                if (passwordRequired)
                {
                    wb.Worksheet(sheetName).Protect("123456");
                }

                Response.Clear();
                Response.Buffer      = true;
                Response.Charset     = "";
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename= " + fileNameWithoutExtension + ".xlsx");

                using (MemoryStream MyMemoryStream = new MemoryStream())
                {
                    wb.SaveAs(MyMemoryStream);
                    MyMemoryStream.WriteTo(Response.OutputStream);
                    Response.Flush();
                    Response.End();
                }

                return(null);
            }
        }
Example #13
0
        public static void ReadFromXml(string filePath)
        {
            XLWorkbook   wb = new XLWorkbook(filePath);
            IXLWorksheet ws = wb.Worksheets.First();

            IXLTable table = ws.Range(ws.FirstCellUsed(), ws.LastCellUsed()).AsTable();

            /*string s = "";
             * table.DataRange.CellsUsed().Count();
             * table.DataRange.Rows().ForEach(row =>
             * {
             *  s += "\n";
             *  row.Cells().ToList().ForEach(cell =>
             *  {
             *      s += cell.GetString()+"\t|||\t";
             *  });
             * });
             * if (true)
             * {
             *
             * }*/

            TimeTable orar      = new TimeTable();
            IXLCell   grupaCell = null;

            #region grupa

            //cauta coloana care contine grupa
            IXLRangeColumn grupaColoana = table.DataRange.FindColumn(column =>
            {
                grupaCell = column.Cells()?.FirstOrDefault(cell => cell.GetString().Equals("Grupa"));
                return(grupaCell != null);
                //return column.Cells().Any(cell => cell.GetString().Equals("Grupa"));
            });
            int id = 1;
            //insereaza grupele care apar in excel in orar
            grupaColoana.CellsUsed().Where(cell => !cell.GetString().Equals("Grupa")).ForEach(cell =>
            {
                orar.Groups.Add(new GroupDto(id++, cell.GetString()));
            });

            #endregion

            table.Range(grupaCell.Address.RowNumber + 1, grupaCell.Address.ColumnNumber + 2,
                        table.LastCellUsed().Address.RowNumber, table.LastCellUsed().Address.ColumnNumber)
            .CellsUsed().Where(cell => !table.Cell(cell.Address.RowNumber, 3).IsEmpty()).ForEach(cell =>
            {
                string[] split = cell.GetString().Split(",".ToCharArray());
                //Programare prog = new Programare();

                string materie    = split[0];
                string tipMaterie = split[1];
                string sala       = split[2];
                string profesor   = split[3];
            });
        }
Example #14
0
 public bool TryGetTable(string tableName, out IXLTable table)
 {
     if (_tables.ContainsKey(tableName))
     {
         table = _tables[tableName];
         return(true);
     }
     table = null;
     return(false);
 }
        public string GetExcelColumnLetter(IXLTable table, string columnHeader)
        {
            var cell = table.HeadersRow().CellsUsed(c => c.Value.ToString() == columnHeader).FirstOrDefault();

            if (cell != null)
            {
                return(cell.WorksheetColumn().ColumnLetter());
            }

            return(null);
        }
        internal ImportCompetenciesResult ProcessCompetenciesTable(IXLTable table, int adminUserId, int frameworkId, int maxFrameworkCompetencyId, int maxFrameworkCompetencyGroupId)
        {
            var competenciesRows = table.Rows().Skip(1).Select(row => new CompetencyTableRow(table, row)).ToList();

            foreach (var competencyRow in competenciesRows)
            {
                maxFrameworkCompetencyGroupId = ProcessCompetencyRow(adminUserId, frameworkId, maxFrameworkCompetencyId, maxFrameworkCompetencyGroupId, competencyRow);
            }

            return(new ImportCompetenciesResult(competenciesRows));
        }
Example #17
0
        public IDictionary <ExcelDataType, object> ReadTable(IXLTable table)
        {
            int rows        = table.RowCount();
            int columns     = table.ColumnCount();
            var numericData = new double?[rows, columns];
            var textData    = new string[rows, columns];
            var formula     = new string[rows, columns];

            for (int i = 1; i <= rows; i++)
            {
                for (int j = 1; j <= columns; j++)
                {
                    IXLCell cell = table.Cell(i, j);
                    switch (cell.DataType)
                    {
                    case XLDataType.Number:
                        numericData[i - 1, j - 1] = cell.GetDouble();
                        break;

                    case XLDataType.Text:
                    {
                        string textValue = GetSingleCellTextValue(cell);
                        KeyValuePair <ExcelDataType, object> parsed = ParseString(textValue);

                        switch (parsed.Key)
                        {
                        case ExcelDataType.Numeric:
                            numericData[i - 1, j - 1] = (double)parsed.Value;
                            break;

                        case ExcelDataType.Text:
                            textData[i - 1, j - 1] = textValue;
                            break;

                        default:
                            throw new NotImplementedException("I haven't implemented formulas yet");
                        }
                        break;
                    }
                    }

                    if (cell.HasFormula)
                    {
                        formula[i - 1, j - 1] = cell.FormulaA1;
                    }
                }
            }
            return(new Dictionary <ExcelDataType, object>
            {
                { ExcelDataType.Numeric, numericData },
                { ExcelDataType.Formulae, formula },
                { ExcelDataType.Text, textData }
            });
        }
Example #18
0
        private bool FileHasHeaders(List <string> headerShortcutList, IXLTable table)
        {
            foreach (var headerShortcut in headerShortcutList)
            {
                if (GetFullHeaderName(headerShortcut, table) is null)
                {
                    return(false);
                }
            }

            return(true);
        }
Example #19
0
        internal BulkUploadResult ProcessDelegatesTable(IXLTable table, int centreId, DateTime?welcomeEmailDate = null)
        {
            var jobGroupIds  = jobGroupsDataService.GetJobGroupsAlphabetical().Select(item => item.id).ToList();
            var delegateRows = table.Rows().Skip(1).Select(row => new DelegateTableRow(table, row)).ToList();

            foreach (var delegateRow in delegateRows)
            {
                ProcessDelegateRow(centreId, welcomeEmailDate, delegateRow, jobGroupIds);
            }

            return(new BulkUploadResult(delegateRows));
        }
Example #20
0
        public IXLPivotTable Add(string name, IXLCell targetCell, IXLTable table)
        {
            var pivotTable = new XLPivotTable(this.Worksheet)
            {
                Name        = name,
                TargetCell  = targetCell,
                SourceTable = table
            };

            _pivotTables.Add(name, pivotTable);
            return(pivotTable);
        }
        private static bool ValidateHeaders(IXLTable table)
        {
            var expectedHeaders = new List <string>
            {
                "competency group",
                "competency name",
                "competency description"
            }.OrderBy(x => x);
            var actualHeaders = table.Fields.Select(x => x.Name.ToLower()).OrderBy(x => x);

            return(actualHeaders.SequenceEqual(expectedHeaders));
        }
Example #22
0
        public static void testLinq(IXLTable table)
        {
            Int32 currentRow = table.RangeAddress.FirstAddress.RowNumber; // reset the currentRow
            var   Linq1      = table.DataRange.Rows().Where(row => row.Field("columnA").GetString() == "A1").Select(r => r);
            var   Linq2      = from row in table.DataRange.Rows()
                               where row.Field("columnC").GetString() == "C1"
                               select row;

            foreach (var row2 in Linq1)
            {
                Console.WriteLine(row2.Field("columnC").GetString());
            }
        }
Example #23
0
        /// <summary>
        ///         ''' can't touch already created pivot-table
        ///         ''' https://github.com/ClosedXML/ClosedXML/pull/124
        ///         ''' </summary>
        ///         ''' <param name="sheetSource"></param>
        ///         ''' <param name="sheetDest"></param>
        ///         ''' <param name="rows"></param>
        ///         ''' <param name="cols"></param>
        ///         ''' <returns></returns>
        public ExcelHelper DoPivotTable(string sheetSource, string sheetDest, string[] rows = null, string[] cols = null, string[] datafields = null)
        {
            try
            {
                IXLWorksheet worksheetSource = null;
                IXLTable     sourceTable     = null;

                if (_workbook.Worksheets.Count < 1)
                {
                    _workbook = new XLWorkbook(this._inputFile.FullName);
                }
                worksheetSource = _workbook.Worksheets.Worksheet(sheetSource);
                sourceTable     = worksheetSource.Table(0);
                // TODO PRIMA CONTROLLARE SE ESISTE E nel caso cancella
                this.RemoveSheet(sheetDest); // <<TODO invece di remove che in questo caso crea un errore cercare se è possibile chiamare REFRESH
                IXLWorksheet pivotTableSheet = _workbook.Worksheets.Add(sheetDest);

                IXLPivotTable pivoTable = pivotTableSheet.PivotTables.Add("PivotTable", pivotTableSheet.Cell(1, 1), sourceTable.AsRange());

                foreach (string r in rows)
                {
                    if (r.Trim() != "")
                    {
                        pivoTable.RowLabels.Add(r);
                    }
                }
                foreach (string c in cols)
                {
                    if (c.Trim() != "")
                    {
                        pivoTable.ColumnLabels.Add(c);
                    }
                }
                foreach (string d in datafields)
                {
                    if (d.Trim() != "")
                    {
                        pivoTable.Values.Add(d);
                    }
                }
            }
            // i filtri non sono al momento supportati https://github.com/ClosedXML/ClosedXML/issues/218

            catch (Exception ex)
            {
                //SD.Log(ex.Message, SD.LogLevel.Error, ex.StackTrace);

                return(this);
            }
            return(this);
        }
Example #24
0
        private string GetFullHeaderName(string fragmentNazwyNaglowka, IXLTable table)
        {
            var headers = new List <string>();

            foreach (var cell in table.HeadersRow().Cells())
            {
                headers.Add(cell.GetString());
            }

            var fullHeaderName = headers.Where(s => s.ToLower().Contains(fragmentNazwyNaglowka.ToLower()))
                                 .FirstOrDefault();

            return(fullHeaderName);
        }
Example #25
0
        public void Inserting_Column_Sets_Header()
        {
            using (var wb = new XLWorkbook())
            {
                IXLWorksheet ws = wb.AddWorksheet("Sheet1");
                ws.FirstCell().SetValue("Categories")
                .CellBelow().SetValue("A")
                .CellBelow().SetValue("B")
                .CellBelow().SetValue("C");

                IXLTable table = ws.RangeUsed().CreateTable();
                table.InsertColumnsAfter(1);
                Assert.AreEqual("Column2", table.HeadersRow().LastCell().GetString());
            }
        }
Example #26
0
        public CompetencyTableRow(IXLTable table, IXLRangeRow row)
        {
            string?FindFieldValue(string name)
            {
                var colNumber = table.FindColumn(col => col.FirstCell().Value.ToString().ToLower() == name).ColumnNumber();

                return(row.Cell(colNumber).GetValue <string?>());
            }

            RowNumber             = row.RowNumber();
            CompetencyGroupName   = FindFieldValue("competency group");
            CompetencyName        = FindFieldValue("competency name");
            CompetencyDescription = FindFieldValue("competency description");
            RowStatus             = RowStatus.NotYetProcessed;
        }
Example #27
0
        private ImportacaoAmbiente ImportacaoExcelCamposDinamicos(IXLTable tabela, ImportacaoAmbienteInput inputs)
        {
            try
            {
                var importacaoDinamica = new ImportacaoAmbiente();
                idImportacao = importacaoDinamica.IdImportacao;

                var linhasAgrupadasDinamicamente = tabela.DataRange.Rows().GroupBy(q => new DynamicDataRowGroup(q, inputs.Agrupadores)).ToList();

                linhasAgrupadasDinamicamente.ForEach(group =>
                {
                    string campoControle = group.ToList()?.First()?.Field(0)?.GetString();

                    if (!string.IsNullOrEmpty(campoControle))
                    {
                        group.ToList().ForEach(linha =>
                        {
                            var agr       = importacaoDinamica.Filhos;
                            Guid?idPaiAux = null;
                            inputs.Agrupadores.ToList().ForEach(colunaAgrupadora =>
                            {
                                var descricaoAmbiente     = linha.Field(colunaAgrupadora).GetString();
                                var descricaoTipoAmbiente = linha.Field(inputs.CampoTipoAmbiente).GetString();

                                var result = CriarArvore(agr, descricaoAmbiente, idPaiAux, descricaoTipoAmbiente);

                                agr      = result.Item2;
                                idPaiAux = result.Item1;
                            });

                            var ambiente            = new Ambiente(linha.Field(inputs.CampoAmbiente).GetString(), idPaiAux);
                            ambiente.TipoAmbiente   = _tpAmbienteServ.BuscarOuCriar(linha.Field(inputs.CampoTipoAmbiente).GetString());
                            ambiente.IdTipoAmbiente = ambiente.TipoAmbiente.Id;
                            ambiente.IdImportacao   = idImportacao;

                            agr.Add(ambiente);
                            _ambienteServ.CriarAmbiente(ambiente);
                        });
                    }
                });

                return(importacaoDinamica);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #28
0
        public void Validation_persists_on_Worksheet_DataValidations()
        {
            var          wb = new XLWorkbook();
            IXLWorksheet ws = wb.Worksheets.Add("People");

            ws.FirstCell().SetValue("Categories")
            .CellBelow().SetValue("A");

            IXLTable table = ws.RangeUsed().CreateTable();

            IXLDataValidation dv = table.DataRange.SetDataValidation();

            dv.ErrorTitle = "Error";

            Assert.AreEqual("Error", ws.DataValidations.Single().ErrorTitle);
        }
Example #29
0
        public void TableShowHeader()
        {
            var          wb = new XLWorkbook();
            IXLWorksheet ws = wb.AddWorksheet("Sheet1");

            ws.FirstCell().SetValue("Categories")
            .CellBelow().SetValue("A")
            .CellBelow().SetValue("B")
            .CellBelow().SetValue("C");

            ws.RangeUsed().CreateTable().SetShowHeaderRow(false);

            IXLTable table = ws.Tables.First();

            //wb.SaveAs(@"D:\Excel Files\ForTesting\Sandbox1.xlsx");

            Assert.IsTrue(ws.Cell(1, 1).IsEmpty(true));
            Assert.AreEqual(null, table.HeadersRow());
            Assert.AreEqual("A", table.DataRange.FirstRow().Field("Categories").GetString());
            Assert.AreEqual("C", table.DataRange.LastRow().Field("Categories").GetString());
            Assert.AreEqual("A", table.DataRange.FirstCell().GetString());
            Assert.AreEqual("C", table.DataRange.LastCell().GetString());

            table.SetShowHeaderRow();
            IXLRangeRow headerRow = table.HeadersRow();

            Assert.AreNotEqual(null, headerRow);
            Assert.AreEqual("Categories", headerRow.Cell(1).GetString());


            table.SetShowHeaderRow(false);

            ws.FirstCell().SetValue("x");

            table.SetShowHeaderRow();
            //wb.SaveAs(@"D:\Excel Files\ForTesting\Sandbox2.xlsx");

            //wb.SaveAs(@"D:\Excel Files\ForTesting\Sandbox3.xlsx");

            Assert.AreEqual("x", ws.FirstCell().GetString());
            Assert.AreEqual("Categories", ws.Cell("A2").GetString());
            Assert.AreNotEqual(null, headerRow);
            Assert.AreEqual("A", table.DataRange.FirstRow().Field("Categories").GetString());
            Assert.AreEqual("C", table.DataRange.LastRow().Field("Categories").GetString());
            Assert.AreEqual("A", table.DataRange.FirstCell().GetString());
            Assert.AreEqual("C", table.DataRange.LastCell().GetString());
        }
Example #30
0
        public void DataRange_returns_null_if_empty()
        {
            using (var wb = new XLWorkbook())
            {
                IXLWorksheet ws = wb.AddWorksheet("Sheet1");
                ws.FirstCell().SetValue("Categories")
                .CellBelow().SetValue("A")
                .CellBelow().SetValue("B")
                .CellBelow().SetValue("C");

                IXLTable table = ws.RangeUsed().CreateTable();

                ws.Rows("2:4").Delete();

                Assert.IsNull(table.DataRange);
            }
        }
Example #31
0
 public void Add(IXLTable table)
 {
     _tables.Add(table.Name, table);
 }