public static CustomClassIf Parse(ExcelWorksheet worksheet) { if (worksheet.Dimension.End.Column < FIRST_COLUMN) { throw new Exception($"Лист {worksheet.Name} содержит число столбцов {worksheet.Dimension.End.Column}, что меньше минимально допустимого!"); } if (worksheet.Dimension.End.Row < HEADER_ROW) { throw new Exception($"Лист {worksheet.Name} содержит число строк {worksheet.Dimension.End.Row}, что меньше минимально допустимого!"); } var table = new CustomClassIf(); table.FieldNames = Enumerable.Range(FIRST_COLUMN, worksheet.Dimension.End.Column) .Select(column => worksheet.Cells[HEADER_ROW, column].Value?.ToString()) .ToArray(); var rows = new List <CustomClassIfRow>(); for (int row = HEADER_ROW + 1; row <= worksheet.Dimension.End.Row; row++) { var values = Enumerable.Range(FIRST_COLUMN, table.FieldCount) .Select(column => worksheet.Cells[row, column].Value?.ToString()) .ToArray(); rows.Add(new CustomClassIfRow() { FieldValues = values }); } table.Rows = rows.ToArray(); return(table); }
public static CustomClassIf Parse(ExcelWorksheet worksheet) { if (worksheet.Dimension.End.Column < FIRST_COLUMN) { throw new Exception($"Лист {worksheet.Name} содержит число столбцов {worksheet.Dimension.End.Column}, что меньше минимально допустимого!"); } if (worksheet.Dimension.End.Row < FIRST_ROW) { throw new Exception($"Лист {worksheet.Name} содержит число строк {worksheet.Dimension.End.Row}, что меньше минимально допустимого!"); } var table = new CustomClassIf() { FieldNames = new string[] { "Код ведомства", "Наименование ведомства", "Код услуги", "Наименование услуги", "Код ФРГУ" } }; var rows = new List <CustomClassIfRow>(); for (int column = FIRST_COLUMN; column <= worksheet.Dimension.End.Column; column++) { var departmentCode = worksheet.Cells[departmentCodeRow, column].Value?.ToString(); if (string.IsNullOrEmpty(departmentCode)) { continue; } var departmentName = worksheet.Cells[departmentNameRow, column].Value?.ToString(); if (string.IsNullOrEmpty(departmentName)) { continue; } for (int row = FIRST_ROW; row <= worksheet.Dimension.End.Row; row++) { var serviceCode = worksheet.Cells[row, ServiceCodeColumn].Value?.ToString(); if (string.IsNullOrEmpty(serviceCode)) { continue; } var serviceName = worksheet.Cells[row, ServiceNameColumn].Value?.ToString(); if (string.IsNullOrEmpty(serviceName)) { continue; } var codeFrgu = worksheet.Cells[row, column]?.Text.Trim().ToUpper(); if (!string.IsNullOrEmpty(codeFrgu) && !(codeFrgu.StartsWith("ВПР(") || codeFrgu.StartsWith("VLOOKUP("))) { rows.Add(new CustomClassIfRow() { FieldValues = new string[] { departmentCode, departmentName, serviceCode, serviceName, codeFrgu } }); } } } table.Rows = rows.ToArray(); return(table); }