public void GetFirstColumnMatchingIndex_NoSuchColumnName_ThrowsExcelMappingException(string columnName) { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); Assert.Throws <ExcelMappingException>(() => heading.GetFirstColumnMatchingIndex(e => e == columnName)); }
public void GetColumnIndex_NullColumnName_ThrowsArgumentNullException() { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); Assert.Throws <ArgumentNullException>("key", () => heading.GetColumnIndex(null)); }
public void GetColumnIndex_InvokeValidColumnName_ReturnsExpected() { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); Assert.Equal(1, heading.GetColumnIndex("StringValue")); Assert.Equal(1, heading.GetColumnIndex("stringvalue")); }
public void TryGetFirstColumnMatchingIndex_NoSuchColumnName_ReturnsFalse(string columnName) { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); Assert.False(heading.TryGetFirstColumnMatchingIndex(e => e == columnName, out int index)); Assert.Equal(-1, index); }
public void AddData(MappingGroup group, MappingColumn column, string data, bool isBold = false) { ExcelData excelColumn = new ExcelData() { Group = group, Column = column, Data = data == null ? string.Empty : data }; currentRow.Data.Add(excelColumn); // Add a heading if one doesn't arleady exist int dataCount = currentRow.Data.Count(y => y.Column == column); int headingCount = headings.Count(y => y.Column == column); if (headingCount < dataCount) { int insertIndex = -1; if (group != null) { var lastHeading = headings.LastOrDefault(y => y.Group == group); if (lastHeading != null) { insertIndex = headings.LastIndexOf(lastHeading); } if (insertIndex < 0 && group.Parent != null) { lastHeading = headings.LastOrDefault(y => y.Group == group.Parent); if (lastHeading != null) { insertIndex = headings.LastIndexOf(lastHeading); } } } ExcelHeading newHeading = new ExcelHeading() { Group = group, Column = column, DataIndex = headingCount }; if (insertIndex >= 0) { headings.Insert(insertIndex + 1, newHeading); } else { headings.Add(newHeading); } } }
public void ReadHeading_EmptyColumnName_ReturnsExpected() { using var importer = Helpers.GetImporter("EmptyColumns.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); Assert.Same(heading, sheet.Heading); Assert.Equal(new string[] { "", "Column2", "", " Column4 " }, heading.ColumnNames); Assert.Equal(-1, sheet.CurrentRowIndex); }
public void ReadHeading_HasHeading_ReturnsExpected() { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); Assert.Same(heading, sheet.Heading); Assert.Equal(new string[] { "Int Value", "StringValue", "Bool Value", "Enum Value", "DateValue", "ArrayValue", "MappedValue", "TrimmedValue" }, heading.ColumnNames); Assert.Equal(-1, sheet.CurrentRowIndex); }
public void ReadHeading_NonZeroHeadingIndex_ReturnsExpected() { using var importer = Helpers.GetImporter("Non Zero Header Index.xlsx"); ExcelSheet sheet = importer.ReadSheet(); sheet.HeadingIndex = 3; ExcelHeading heading = sheet.ReadHeading(); Assert.Same(heading, sheet.Heading); Assert.Equal(new string[] { "Value" }, heading.ColumnNames); Assert.Equal(-1, sheet.CurrentRowIndex); }
public void GetColumnName_GetColumnIndex_Roundtrips() { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); string[] columnNames = heading.ColumnNames.ToArray(); for (int i = 0; i < columnNames.Length; i++) { Assert.Equal(i, heading.GetColumnIndex(columnNames[i])); Assert.Equal(columnNames[i], heading.GetColumnName(i)); } }
public void GetColumnName_TryGetFirstColumnMatchingIndex_Roundtrips() { using var importer = Helpers.GetImporter("Primitives.xlsx"); ExcelSheet sheet = importer.ReadSheet(); ExcelHeading heading = sheet.ReadHeading(); string[] columnNames = heading.ColumnNames.ToArray(); for (int i = 0; i < columnNames.Length; i++) { Assert.True(heading.TryGetFirstColumnMatchingIndex(e => e == columnNames[i], out int index)); Assert.Equal(i, index); Assert.Equal(columnNames[i], heading.GetColumnName(i)); } }