public static void AddPublisher(PublishersRange publisher, S21Settings settings) { ExcelPublisher.ExcelPublisher excel = new ExcelPublisher.ExcelPublisher(settings); if (excel.CheckConnect() == true) { var datas = GetDataPublisher(settings) as List <PublishersRange>; List <string> names = new List <string>(); // Будет хранить имена всех возвещателей, который находяться в excel. foreach (var data in datas) { names.Add(data.Name); } names.Add(publisher.Name); names.Sort(); int index = names.IndexOf(publisher.Name) + 2; // +2 -- есть общие начальные колонки в ексель таблице. excel.AddPublisher(publisher, index); } }
public void AddPublisher(PublishersRange publisher, int startIndex) { using (var p = new ExcelPackage(package.File)) { ExcelWorksheet ws = package.Workbook.Worksheets[NameTable]; ws.InsertRow(startIndex, 1); ws.Cells[$"A{startIndex}"].Value = publisher.Name; // Имя Фамилия возвещателя ws.Cells[$"B{startIndex}"].Value = publisher.DateBirth; // Дата рождения ws.Cells[$"C{startIndex}"].Value = publisher.BuptismDate; // Дата крещения ws.Cells[$"D{startIndex}"].Value = publisher.Adress; // Адресс ws.Cells[$"E{startIndex}"].Value = publisher.Gender; // Пол ws.Cells[$"F{startIndex}"].Value = publisher.Pioner; // Пионер ws.Cells[$"G{startIndex}"].Value = publisher.Mobile1; // Номер телефона 1 ws.Cells[$"H{startIndex}"].Value = publisher.Mobile2; // Номер телефона 2 ws.Cells[$"I{startIndex}"].Value = publisher.Appointment; // Назначение (братья) package.Save(); } }
private async void SaveButton_Click(object sender, RoutedEventArgs e) { if (TextboxName.Text == String.Empty || TextboxSurname.Text == String.Empty || TextboxAddress.Text == String.Empty || TextBoxMobile1.Text == String.Empty || TextBoxMobile2.Text == String.Empty ) { MyMessageBox.Show("Необходимо заполнить все поля!", "Ошибка!"); goto exitMethod; } if ((CheckBoxMen.IsChecked == false && CheckBoxWomen.IsChecked == false) || (CheckBoxMen.IsChecked == true && CheckBoxWomen.IsChecked == true)) { MyMessageBox.Show("Выберите один вариант пола (либо мужчина либо женщина)", "Ошибка!"); goto exitMethod; } if (CheckBoxPastor.IsChecked == true && CheckBoxMinistryHelper.IsChecked == true) { MyMessageBox.Show("Брат может иметь талько одно назначение!", "Ошибка!"); goto exitMethod; } if (DayComboBoxBirth.Text == "День" || DayComboBoxBaptism.Text == "День") { MyMessageBox.Show("Проверьте правильно ли указан день рождения (крещения).", "Ошибка!"); goto exitMethod; } if (MonthComboBoxBirth.Text == "Месяц" || MonthComboBoxBaptism.Text == "Месяц") { MyMessageBox.Show("Проверьте правильно ли указан месяц рождения (крещения).", "Ошибка!"); goto exitMethod; } if (YearComboBoxBirth.Text == "Год" || YearComboBoxBaptism.Text == "Год") { MyMessageBox.Show("Проверьте правильно ли указан год рождения (крещения).", "Ошибка!"); goto exitMethod; } { if (Int32.TryParse(YearComboBoxBirth.Text, out int yearBirth) == false) { MyMessageBox.Show("Укажите правильный год рождения!", "Ошибка"); goto exitMethod; } if (Int32.TryParse(YearComboBoxBaptism.Text, out int yearBaptism) == false) { MyMessageBox.Show("Укажите правильный год крещения!", "Ошибка"); goto exitMethod; } if (yearBaptism < yearBirth) // Если год крещения больше года рождения - ошибка { MyMessageBox.Show("Год рождения не может быть меньше, чем год крещения!", "Ошибка"); goto exitMethod; } } string birthPublisher = DayComboBoxBirth.Text + "." + Months[MonthComboBoxBirth.Text] + "." + YearComboBoxBirth.Text; string baptismPublisher = DayComboBoxBaptism.Text + "." + Months[MonthComboBoxBaptism.Text] + "." + YearComboBoxBaptism.Text; PublishersRange publisher = new PublishersRange() { Name = TextboxSurname.Text + " " + TextboxName.Text, Adress = TextboxAddress.Text, DateBirth = birthPublisher, BuptismDate = baptismPublisher, Mobile1 = TextBoxMobile1.Text, Mobile2 = TextBoxMobile2.Text, Gender = CheckBoxMen.IsChecked == true ? "М" : "Ж", Appointment = CheckBoxPastor.IsChecked == true ? "СТАР" : (CheckBoxMinistryHelper.IsChecked == true ? "СЛУЖ" : ""), Pioner = CheckBoxPioner.IsChecked == true ? "П" : String.Empty }; ProgressWindow waitWindow = new ProgressWindow(); waitWindow.ProgressBar.IsIndeterminate = true; waitWindow.ProgressBar.Orientation = System.Windows.Controls.Orientation.Horizontal; waitWindow.LabelInformation.Content = String.Empty; waitWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner; waitWindow.Owner = this; waitWindow.Show(); await Task.Run(() => { MainWindow mainWindow = null; this.Dispatcher.Invoke(() => mainWindow = this.Owner as MainWindow); JwBookExcel excel = new JwBookExcel(mainWindow.userSettings.JWBookSettings.JWBookPuth); JwBookExcel.DataPublisher dpExcel = new JwBookExcel.DataPublisher(excel); if (dpExcel.IsPublisherContainsInTable(publisher.Name) == true) { this.Dispatcher.Invoke(() => { waitWindow.Close(); MyMessageBox.Show("Такой возвещатель уже есть в системе!", "Ошибка!"); }); } else { try { this.Dispatcher.Invoke(() => { dpExcel.AddPublisher(publisher.Name, pioner: CheckBoxPioner.IsChecked.Value, pastor: CheckBoxPastor.IsChecked.Value, ministryAssistant: CheckBoxMinistryHelper.IsChecked.Value); ExcelDBController.AddPublisher(publisher, mainWindow.userSettings.S21Settings); waitWindow.Close(); MyMessageBox.Show($"Возвещатель \"{publisher.Name}\" успешно сохранён!", "Успешно!"); MainWindow window = this.Owner as MainWindow; window.AddNotification(MainWindow.CreateNotification("Информация о возвещателях", $"Возвещатель \"{publisher.Name}\" успешно сохранён в Google таблицы и Excel файл.")); }); } catch (InvalidOperationException) { waitWindow.Close(); MyMessageBox.Show($"Не удалось добавить возвещателя \"{publisher.Name}\". Проверьте настройки приложения. Возможно Вы не правильно настроили доступ к файлу excel. Или возможно у Вас открыт документ excel. Пожалуйста закройте его и повторите попытку.", "Ошибка!"); MainWindow window = this.Owner as MainWindow; window.AddNotification(MainWindow.CreateNotification("Информация о возвещателях", $"Не удалось добавить возвещателя \"{publisher.Name}\". Проверьте настройки приложения. Возможно Вы не правильно настроили доступ к файлу excel. Или возможно у Вас открыт документ excel. Пожалуйста закройте его и повторите попытку.")); } } }); this.Close(); exitMethod :; }