2015-08-11 4 views
1

Я использую Excel для заполнения некоторых данных и создать отчет, используя следующий код:Открытие экземпляра Excel с помощью C#

Excel.Application app = new Excel.Application(); 
Excel.Workbook workbook = app.Workbooks.Open(templatePath); 
Excel.Worksheet worksheet = workbook.Worksheets[1]; 

worksheet.Cells[1, 2] = myInbox.FolderPath; 
worksheet.Cells[2, 2] = DateTime.Today.ToShortDateString(); 
worksheet.Cells[2, 4] = DateTime.Now.ToShortTimeString(); 

app.Visible = true; 
workbook.RefreshAll(); 

Все это, кажется, работает нормально, однако, когда я смотрю на диспетчере задач я замечаю несколько примеров excel, открытых в «фоновых процессах». Кажется, что один экземпляр excel на каждый раз, когда я запускаю код, несмотря на закрытие excel каждый раз.

Эти фоновые процессы даже не отображаются, если я открываю Excel вручную.

+0

У меня было много проблем с экземплярами Excel в прошлом. Управление экземплярами Excel отличается от остальной части пакета Office. Вы используете Application.Quit, чтобы закрыть экземпляр Excel? –

+0

Это происходит при закрытии вручную и при закрытии программным способом. – Oliver

+0

Зачем вам удалять свой собственный ответ? –

ответ

3

Хорошо, поэтому я нашел ответ довольно быстро, я не освобождал объекты взаимодействия, поэтому они сохранялись даже после выхода приложения.

Я включил ссылку на правильный ответ ниже, но для справки коды для закрытия этих объектов:

Excel.Application app = new Excel.Application(); 
Excel.Workbooks workbooks = app.Workbooks; 
Excel.Workbook workbook = workbooks.Open(templatePath); 
Excel.Worksheet worksheet = workbook.Worksheets[1]; 

//do stuff to worksheet here 

System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); 
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks); 
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); 
System.Runtime.InteropServices.Marshal.ReleaseComObject(app); 

Clean up excel interop objects

поэтому я learn't немного о сборке мусора Cегодня.

Смежные вопросы