public List <dynamic> LoadDynamicListFromExcel(string excelFilePath) { Debug.WriteLine($"Current Path {Environment.CurrentDirectory}, expected path of excelfile with keys {Path.Combine( Environment.CurrentDirectory, excelFilePath )}"); var file = File.Open(excelFilePath, FileMode.Open); var data = new SLExcelReader( ).ReadExcel(file); return(data.DataRows.Select(dataRow => AsDynamic(dataRow, data.Headers)).ToList( )); }
private void SelectImportFileButton_Click(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == true) { _SelectedFileFullPath = openFileDialog.FileName; SelectedFileLabel.Content = (new FileInfo(openFileDialog.FileName)).Name; } else { return; } SLExcelReader reader = new SLExcelReader(); SLExcelData excelData = reader.ReadExcel(_SelectedFileFullPath); SiteSetting siteSetting = ApplicationContext.Current.Configuration.SiteSettings[_MainObject.SiteSettingID]; List <Field> fields = ServiceManagerFactory.GetServiceManager(siteSetting.SiteSettingType).GetFields(siteSetting, _MainObject); DynamicGrid.ColumnDefinitions.Clear(); ColumnDefinition gridCol1 = new ColumnDefinition(); ColumnDefinition gridCol2 = new ColumnDefinition(); gridCol1.Width = GridLength.Auto; gridCol2.Width = GridLength.Auto; DynamicGrid.ColumnDefinitions.Add(gridCol1); DynamicGrid.ColumnDefinitions.Add(gridCol2); for (int i = 0; i < excelData.Headers.Count; i++) { string headerTitle = excelData.Headers[i]; RowDefinition gridRow1 = new RowDefinition(); gridRow1.Height = new GridLength(45); DynamicGrid.RowDefinitions.Add(gridRow1); System.Windows.Controls.ComboBox comboBox = new ComboBox(); comboBox.Width = 200; comboBox.Height = 30; comboBox.Background = Brushes.LightBlue; ComboBoxItem emptycboxitem = new ComboBoxItem(); emptycboxitem.Content = "Select a field"; emptycboxitem.IsSelected = true; emptycboxitem.Tag = ""; comboBox.Items.Add(emptycboxitem); foreach (Field field in fields) { ComboBoxItem cboxitem = new ComboBoxItem(); cboxitem.Content = field.DisplayName; cboxitem.Tag = field.Name; if (field.Name.Equals(headerTitle, StringComparison.InvariantCultureIgnoreCase) == true) { cboxitem.IsSelected = true; } comboBox.Tag = headerTitle; comboBox.Items.Add(cboxitem); } Grid.SetRow(comboBox, i); Grid.SetColumn(comboBox, 1); DynamicGrid.Children.Add(comboBox); Label label = new Label(); label.Content = headerTitle; Grid.SetRow(label, i); Grid.SetColumn(label, 0); DynamicGrid.Children.Add(label); } }