Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Excel не завершает процесс / 3 сообщений из 3, страница 1 из 1
30.06.2017, 13:26
    #39480342
Clava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel не завершает процесс
Знаю, что тема уже много кратно обсуждалась, перечитала кучу топиков, но тем не менее проблема остается. Все ссылки обнуляю.
См. код, все работает корректно, но если раскомментировать создание еще одного 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
30.06.2017, 13:37
    #39480361
mikron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel не завершает процесс
...
Рейтинг: 0 / 0
30.06.2017, 16:05
    #39480508
Clava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel не завершает процесс
Вопрос решился переносом вызова ClearExcel() из ExportToExcel на закрытие формы.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Excel не завершает процесс / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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