Работа с 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;
}