private void btnOk_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(_viewModel.ExportExcelFolderPath)) { _viewModel.ExportExcelFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); } #region Code List <ViewScheduleExtension> viewScheduleExport = new List <ViewScheduleExtension>(); foreach (ViewScheduleExtension viewSchedule in _viewModel.AllViewSchedules) { if (viewSchedule.IsExport) { viewScheduleExport.Add(viewSchedule); } } if (viewScheduleExport.Count == 0) { MessageBox.Show("Please select the Schedules which will be exported!"); return; } if (_viewModel.IsMultiWorkbooks) { foreach (var vse in viewScheduleExport) { ViewSchedule selectedSchedule = vse.ViewSchedule; string filePath = Path.Combine(_viewModel.ExportExcelFolderPath, selectedSchedule.Name + ".xlsx"); try { string filePathTxt = Path.Combine(_viewModel.ExportExcelFolderPath, string.Concat(selectedSchedule.Name, ".txt")); List <string> scheduleExportFieldName = selectedSchedule.GetNameOfFields(); ViewScheduleExportOptions viewScheduleExportOption = new ViewScheduleExportOptions(); selectedSchedule.Export(_viewModel.ExportExcelFolderPath, Path.GetFileName(filePathTxt), viewScheduleExportOption); DataTable dataTable = ExcelUtils.ReadFile(filePathTxt, scheduleExportFieldName.Count); FileInfo existingFile = new FileInfo(filePath); using (var package = new ExcelPackage(existingFile)) { ExcelUtils.ExportDataTableToExcel(package, dataTable, selectedSchedule.Name, filePath); } File.Delete(filePathTxt); } catch (Exception) { } } } else { string title = _viewModel.Doc.Title; title = title.Substring(0, title.Length - 4); string filePath = Path.Combine(_viewModel.ExportExcelFolderPath, string.Concat(title, ".xlsx")); FileInfo existingFile = new FileInfo(filePath); using (var package = new ExcelPackage(existingFile)) { foreach (var vse in viewScheduleExport) { ViewSchedule selectedSchedule = vse.ViewSchedule; try { string filePathTxt = Path.Combine(_viewModel.ExportExcelFolderPath, string.Concat(selectedSchedule.Name, ".txt")); List <string> scheduleExportFieldName = selectedSchedule.GetNameOfFields(); ViewScheduleExportOptions viewScheduleExportOption = new ViewScheduleExportOptions(); selectedSchedule.Export(_viewModel.ExportExcelFolderPath, Path.GetFileName(filePathTxt), viewScheduleExportOption); DataTable dataTable = ExcelUtils.ReadFile(filePathTxt, scheduleExportFieldName.Count); ExcelUtils.ExportDataTableToExcel(package, dataTable, selectedSchedule.Name, filePath); File.Delete(filePathTxt); } catch (Exception) { } } } } if (MessageBox.Show("Do you want to open folder that store exported files?", "Open folder", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { try { Process.Start(_viewModel.ExportExcelFolderPath); } catch (Exception) { } } #endregion DialogResult = true; Close(); }