"Встает" прога после начала выполнения функции записи в документ Word

На форме tabControl с парой вкладок, в каждой из них DataGridView. Функция(приведена ниже) должна записывать значение каждой ячейки, в соответствующее текстовое поле в таблице документа Word. Однако, если я правильно понял дебаггер, как только прога пытается записать данные - тут же встает, а в процессах вечно висит Word и что-то сделать пытается. Прошу вашей помощи, гуру шаманов.

 private void GenerateWordDocument() //Создание документа и запись
        {
            // Создание нового Word документа
            var wordApp = new Microsoft.Office.Interop.Word.Application();
            var doc = wordApp.Documents.Add(@"C:\Users\ilya2\source\repos\schedule\schedule\source\template2.dotx");

            try
            {
                // Цикл по вкладкам, начиная с 6-й
                for (int tabIndex = 5; tabIndex < tab.TabPages.Count; tabIndex++)
                {
                    var tabPage = tab.TabPages[tabIndex];

                    // Получение номера класса из заголовка вкладки
                    int classNumber = int.Parse(tabPage.Text);

                    // Цикл по DataGridView в каждой вкладке
                    foreach (Control control in tabPage.Controls)
                    {
                        if (control is DataGridView dataGridView)
                        {
                            // Цикл по строкам и столбцам в DataGridView
                            for (int rowIndex = 0; rowIndex < dataGridView.Rows.Count; rowIndex++)
                            {
                                for (int columnIndex = 1; columnIndex < dataGridView.Columns.Count; columnIndex++)
                                {
                                    // Получение значения ячейки
                                    string cellValue = dataGridView[columnIndex, rowIndex].Value?.ToString();

                                    // Формирование имени текстового поля в документе Word
                                    string fieldName = $"{tabIndex.ToWords()}_{columnIndex}_{rowIndex + 1}"; 

                                    // Вставка значения в текстовое поле в документе Word
                                    ReplaceFormFieldText(doc, fieldName, cellValue);
                                }
                            }
                        }
                    }
                }

                // Сохранение документа
                string filePath = "C:\\Users\\ilya2\\source\\repos\\schedule\\schedule\\source\\text.docx";
                doc.SaveAs2(filePath);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка: " + ex.Message);
            }
            finally
            {
                // Закрытие Word приложения
                wordApp.Quit();
            }
        }

Вот функция ReplaceFormFieldText, которая непосредственно записывает данные в поля:

private void ReplaceFormFieldText(Document doc, string fieldName, string text)
        {
            // Замена текста в текстовом поле документа Word
            foreach (Field field in doc.Fields)
            {
                if (field.Type == WdFieldType.wdFieldFormTextInput)
                {
                    string fieldCode = field.Code.Text;
                    if (fieldCode.Contains(fieldName))
                    {
                        field.Result.Text = text; //если я правильно понял, то прога встает на этом моменте
                    }
                }
            }
        }

Ответы (0 шт):