public HedgesSetupVM(ExcelDataSet excelDataSet, HedgesSettings settings) { _excelDataSet = excelDataSet; _settings = settings; var availableVariableNames = GetAvailableVariableNames().ToList(); AvailableVariables = new ObservableCollection<string>(availableVariableNames); AvailableGroups = new ObservableCollection<string>(availableVariableNames); AvailableFirstValues = new ObservableCollection<string>(); AvailableSecondValues = new ObservableCollection<string>(); }
public List<object> GenerateTrialResult(ExcelDataSet dataSet) { var result = new List<dynamic>(); var generetedType = GenerateType(dataSet.TrialDataRows[0].Values); for (var i = 1; i < dataSet.TrialDataRows.Count; i++) { var generatedObject = GenerateObject(generetedType, dataSet.TrialDataRows[i].Values); result.Add(generatedObject); } return result; }
public ExcelDataSet GetCellValues(string fileName) { using (var document = SpreadsheetDocument.Open(fileName, false)) { var wbPart = document.WorkbookPart; var sheet = wbPart.Workbook.Descendants<Sheet>().FirstOrDefault(); if (sheet == null) { throw new InvalidOperationException("There is no worksheet in the excel document."); } var wsPart = (WorksheetPart)(wbPart.GetPartById(sheet.Id)); var cells = wsPart.Worksheet.Descendants<Cell>(); var cellList = new List<ExcelSheetValue>(); int columnCount = 0; int rowCount = 0; foreach (var cell in cells) { var sheetValue = _cellParser.ParseCell(wbPart, cell); cellList.Add(sheetValue); if(sheetValue.Coordinates.Column > columnCount) { columnCount = sheetValue.Coordinates.Column; } if(sheetValue.Coordinates.Row > rowCount) { rowCount = sheetValue.Coordinates.Row; } } var trialDataSet = new ExcelDataSet(rowCount); for (var i = 0; i < rowCount+1; i++) { var row = new ExcelDataRow(columnCount+1); trialDataSet.TrialDataRows.Add(row); int i1 = i; foreach (var excelSheetValue in cellList.Where(excelSheetValue => excelSheetValue.Coordinates.Row == i1)) { row.Values[excelSheetValue.Coordinates.Column] = excelSheetValue.Value; } } return trialDataSet; } }
public ExcelDataSet GetCellValues(string fileName) { using (var document = SpreadsheetDocument.Open(fileName, false)) { var wbPart = document.WorkbookPart; var sheet = wbPart.Workbook.Descendants <Sheet>().FirstOrDefault(); if (sheet == null) { throw new InvalidOperationException("There is no worksheet in the excel document."); } var wsPart = (WorksheetPart)(wbPart.GetPartById(sheet.Id)); var cells = wsPart.Worksheet.Descendants <Cell>(); var cellList = new List <ExcelSheetValue>(); int columnCount = 0; int rowCount = 0; foreach (var cell in cells) { var sheetValue = _cellParser.ParseCell(wbPart, cell); cellList.Add(sheetValue); if (sheetValue.Coordinates.Column > columnCount) { columnCount = sheetValue.Coordinates.Column; } if (sheetValue.Coordinates.Row > rowCount) { rowCount = sheetValue.Coordinates.Row; } } var trialDataSet = new ExcelDataSet(rowCount); for (var i = 0; i < rowCount + 1; i++) { var row = new ExcelDataRow(columnCount + 1); trialDataSet.TrialDataRows.Add(row); int i1 = i; foreach (var excelSheetValue in cellList.Where(excelSheetValue => excelSheetValue.Coordinates.Row == i1)) { row.Values[excelSheetValue.Coordinates.Column] = excelSheetValue.Value; } } return(trialDataSet); } }
public CohensSetupVM(ExcelDataSet excelDataSet, CohensSettings cohensSettings) { _cohensSettings = cohensSettings; AvailableFirstVariables = new ObservableCollection<string>(excelDataSet.TrialDataRows[0].Values.Select(p => p.ToString())); AvailableFirstVariables.Insert(0, string.Empty); AvailableSecondVariables = new ObservableCollection<string>(excelDataSet.TrialDataRows[0].Values.Select(p => p.ToString())); AvailableSecondVariables.Insert(0, string.Empty); AvailableFilterVariables = new ObservableCollection<string>(excelDataSet.TrialDataRows[0].Values.Select(p => p.ToString())); AvailableFilterVariables.Insert(0, string.Empty); }
public ExpandoObject CreateDynamicData(ExcelDataSet excelDataSet) { var data = _trialResultGenerator.GenerateTrialResult(excelDataSet); var t = data[0].GetType(); var list = (IList)Activator.CreateInstance((typeof(List<>).MakeGenericType(t))); foreach (var o in data) { list.Add(o); } dynamic result = new ExpandoObject(); result.Data = list; return result; }
private void RemoveColumnsWithIndices(List <int> indicesOfColumnsToRemove, ExcelDataSet excelDataSet) { foreach (var trialDataRow in excelDataSet.TrialDataRows) { var values = new string[trialDataRow.Values.Length - indicesOfColumnsToRemove.Count]; int currentIndexInNewArray = 0; for (int i = 0; i < trialDataRow.Values.Length; i++) { if (indicesOfColumnsToRemove.Contains(i)) { continue; } values[currentIndexInNewArray++] = trialDataRow.Values[i]; } trialDataRow.Values = values; } }
private void RemoveColumnsWithIndices(List<int> indicesOfColumnsToRemove, ExcelDataSet excelDataSet) { foreach (var trialDataRow in excelDataSet.TrialDataRows) { var values = new string[trialDataRow.Values.Length - indicesOfColumnsToRemove.Count]; int currentIndexInNewArray = 0; for (int i = 0; i < trialDataRow.Values.Length; i++) { if (indicesOfColumnsToRemove.Contains(i)) { continue; } values[currentIndexInNewArray++] = trialDataRow.Values[i]; } trialDataRow.Values = values; } }
private List <int> FindIndicesOfColumnsThatContainValuesOtherThanDouble(ExcelDataSet excelDataSet) { var indicesOfColumnsToRemove = new List <int>(); for (int i = 1; i < excelDataSet.TrialDataRows.Count; i++) { for (int k = 0; k < excelDataSet.TrialDataRows[i].Values.Length; k++) { double doubleValue; if (!double.TryParse(excelDataSet.TrialDataRows[i].Values[k], out doubleValue) && excelDataSet.TrialDataRows[i].Values[k] != null) { if (!indicesOfColumnsToRemove.Contains(k)) { indicesOfColumnsToRemove.Add(k); } } } } return(indicesOfColumnsToRemove); }
private List<int> FindIndicesOfColumnsThatContainValuesOtherThanDouble(ExcelDataSet excelDataSet) { var indicesOfColumnsToRemove = new List<int>(); for (int i = 1; i < excelDataSet.TrialDataRows.Count; i++) { for (int k = 0; k < excelDataSet.TrialDataRows[i].Values.Length; k++) { double doubleValue; if (!double.TryParse(excelDataSet.TrialDataRows[i].Values[k], out doubleValue) && excelDataSet.TrialDataRows[i].Values[k] != null) { if (!indicesOfColumnsToRemove.Contains(k)) { indicesOfColumnsToRemove.Add(k); } } } } return indicesOfColumnsToRemove; }
private List<double> GetFilterVariableValues(CohensSettings cohensSettings, ExcelDataSet excelDataSet) { List<double> filterVariableValues = null; if (!string.IsNullOrEmpty(cohensSettings.SelectedFilterVariable)) { filterVariableValues = GetVariableValues(cohensSettings.SelectedFilterVariable, excelDataSet); } return filterVariableValues; }
private List<double> GetVariableValues(string selectedFilterVariable, ExcelDataSet excelDataSet) { if (string.IsNullOrEmpty(selectedFilterVariable)) { return null; } var result = new List<double>(); var indexOfColumn = excelDataSet.TrialDataRows[0].Values.ToList().IndexOf(selectedFilterVariable); for (int i = 1; i < excelDataSet.TrialDataRows.Count; i++) { var value = excelDataSet.TrialDataRows[i].Values[indexOfColumn] ?? string.Empty; if (value == string.Empty) { result.Add(double.NaN); } else { double doubleValue; if (double.TryParse(value, out doubleValue)) { result.Add(doubleValue); } else { throw new InvalidOperationException( "The provided value cannot be converted to double precision number."); } } } return result; }
public CohensCalculator(ExcelDataSet excelDataSet, CohensSettings cohensSettings) { _excelDataSet = excelDataSet; _cohensSettings = cohensSettings; }
public void ReduceToColumnsWithDoubleValues(ExcelDataSet excelDataSet) { var indicesOfColumnsToRemove = FindIndicesOfColumnsThatContainValuesOtherThanDouble(excelDataSet); RemoveColumnsWithIndices(indicesOfColumnsToRemove, excelDataSet); }
public HedgesCalculator(ExcelDataSet excelDataSet, HedgesSettings hedgesSettings) { _excelDataSet = excelDataSet; _hedgesSettings = hedgesSettings; }
private void OpenExcelSheet(string filename) { _excelDataSet = _excelImporter.GetCellValues(filename); _columnReducer.ReduceToColumnsWithDoubleValues(_excelDataSet); Expando = _dynamicListGenerator.CreateDynamicData(_excelDataSet); }