Работа с Excel: его процесс висит даже после закрытия программы - C#

Узнай цену своей работы

Формулировка задачи:

Добрый Вечер! Подскажите пожалуйста, пишу программу для обработки Excel файлов но после закрытия моей программы в процессах каждый раз остается EXCEL.EXE. Подключаюсь к Excel так:
public Microsoft.Office.Interop.Excel.ApplicationClass excel = null;
.............
public Microsoft.Office.Interop.Excel.ApplicationClass excel = null;
..............
 bool LoadExcel()
        {
            cbExcelPage.Items.Clear();
 
            /// === Проверка входных данных ===
            string err_msg = "";
            if (textBox1.Text.Trim() == string.Empty)
            {
                err_msg = "Укажите Excel файл...";
            }
            else if (!System.IO.File.Exists(textBox1.Text))
            {
                err_msg = string.Format("Файл не найден\n{0}", textBox1.Text);
            }
 
            if (err_msg.Trim() != string.Empty)
            {
               // Program.log.Trace(err_msg);
                MessageBox.Show(err_msg, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

Решение задачи: «Работа с Excel: его процесс висит даже после закрытия программы»

textual
Листинг программы
bool LoadExcel()
        {
            cbExcelPage.Items.Clear();
 
            /// === Проверка входных данных ===
            string err_msg = "";
            if (textBox1.Text.Trim() == string.Empty)
            {
                err_msg = "Укажите Excel файл...";
            }
            else if (!System.IO.File.Exists(textBox1.Text))
            {
                err_msg = string.Format("Файл не найден\n{0}", textBox1.Text);
            }
 
            if (err_msg.Trim() != string.Empty)
            {
               // Program.log.Trace(err_msg);
                MessageBox.Show(err_msg, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
 
            // === Работа с Excel ===
 
            if (!InitExcel()) return false;
 
            try
            {
                // Открываем Excel и проходимся по закладкам
                Workbook ObjWorkBook = excel.Workbooks.Open(textBox1.Text, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                for (int i = 1; i <= ObjWorkBook.Sheets.Count; i++)
                {
                    Worksheet sheet = (Worksheet)ObjWorkBook.Sheets[i];
                    cbExcelPage.Items.Add(sheet.Name); // добовляем страницы книг
                }
            }
            catch (Exception e)
            {
                string str = string.Format("Ошибка открытия Excel файла:\n {0}", e.Message);
                MessageBox.Show(str, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            excel.Quit();
            return true;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы