Кажется, в опубликованном вами коде нет ничего плохого. Я пробовал это несколько раз, и после закрытия приложения процесс не запускается в фоновом режиме.
(Возможное) Решение
Поместите свой код в экземпляр backgroundWorker и асинхронно вызывать экземпляр фонового рабочего. Таким образом, выполнение дополнительных действий не будет препятствовать завершению вашего кода.
Сначала добавьте в форму экземпляр backgroundWorker (Панель инструментов> Компоненты> фоновый исполнитель). Во-вторых, добавьте в класс формы следующий код:
public Form1()
{
InitializeComponent();
backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"D:/Projects/Training/MemoryExcelInt/MemoryExcelInt/Example.xlsx");
xlWorkSheet = xlWorkBook.Worksheets["Sheet1"];
xlWorkSheet.Cells[9, 5].value = "ExampleValue";
xlWorkBook.PrintOutEx();
xlWorkBook.Close(false, null, null);
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}