powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Excel не завершает процесс
3 сообщений из 3, страница 1 из 1
Excel не завершает процесс
    #39480342
Clava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю, что тема уже много кратно обсуждалась, перечитала кучу топиков, но тем не менее проблема остается. Все ссылки обнуляю.
См. код, все работает корректно, но если раскомментировать создание еще одного Range x3, то процесс не убивается, хоть и ссылку на него обнуляю. Что не так то?? Аналогичная история с попыткой открытия еще одного листа
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
private void ExportToExcel()
        {
            try
            {
                excelApp = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
            }
            catch
            {
                excelApp = new Excel.Application(); // Если нет открытого, то создаём новое приложение
            }

            String TemplatePath = System.Windows.Forms.Application.StartupPath + String.Format(@"\{0}.xltx", fileName);

            //Книга.
            try
            {
                excelAppWorkbooks = excelApp.Workbooks; // Получаем список открытых книг
                excelAppWorkbook = excelAppWorkbooks.Add(TemplatePath);
            }
            catch (System.Exception ex)
            {
                throw new Exception("Не удалось загрузить шаблон для экспорта " + TemplatePath + "\n" + ex.Message);
            }

            excelSheets = excelAppWorkbook.Worksheets; // Получаем список листов в нашей книге
            excelWorkSheet = (Excel.Worksheet)excelSheets.get_Item(1); // Берем первый лист
            CreateTable(dt); // формируем таблицу с данными для выгрузки
            Excel.Range x1 = excelWorkSheet.Cells[head + 1, 1];
            Excel.Range x2 = excelWorkSheet.Cells[head + 1, dt.Columns.Count];
    //      Excel.Range x3 = excelWorkSheet.Cells[head, dt.Columns.Count];
            excelCells = excelWorkSheet.get_Range(x1, x2);
            excelCells.Value2 = datatuple.Item2;

            //==============Внешний вид
            //настройки для всей таблицы
            excelCells.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;

            Excel.Borders xlb = excelCells.Borders;
            // внутренние вертикальные границы
            xlb[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous;
   
            xlb = null;
            x1 = null;
            x2 = null;
       //     x3 = null;
            excelCells = null;
            excelWorkSheet = null;
            excelSheets = null;

            SaveToFile(fileName);//Сохраняем в файл
            ClearExcel();
           
        }

        private void ClearExcel()
        {
            excelAppWorkbook.Close(false, false, false);
            excelAppWorkbooks = excelApp.Workbooks;   
            if (excelAppWorkbooks.Count == 0)
                excelApp.Quit();            
            excelAppWorkbook = null;       
            excelAppWorkbooks = null;
            excelApp = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }
...
Рейтинг: 0 / 0
Excel не завершает процесс
    #39480361
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Excel не завершает процесс
    #39480508
Clava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос решился переносом вызова ClearExcel() из ExportToExcel на закрытие формы.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Excel не завершает процесс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]