C# - forma adequada de abrir e fechar um arquivo excel programaticamente

Não consigo encontrar a maneira correcta de abrir e fechar um ficheiro excel.

Eis o que tenho de abrir o meu ficheiro, que acho demasiado complicado:
        Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

        Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
            0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
            true, false, 0, true, false, false);
        Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets;

        Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)excelApp.Worksheets[2];
        sheet.Select(Type.Missing);
Não faço ideia de como fechá-la correctamente. Eu preciso salvá-lo com o mesmo caminho e ter certeza de que o excel não está ainda rodando em segundo plano depois que ele é fechado.

Alguém pode facilitar-me as coisas? Obrigado.
 4
Author: Simon, 2015-06-12

2 answers

Semi-código:

using Excel = Microsoft.Office.Interop.Excel;

# declare the application object
Excel.Application xl = new Excel.Application();

# open a file
Excel.Workbook wb = xl.Workbooks.Open("some_file.xlsx");

# do stuff ....

# close the file
wb.Close();

# close the application and release resources
xl.Quit();
 2
Author: David, 2015-06-11 22:40:16

Liberta os objectos COM quando terminados...

using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

# declare the application object
var xl = new Excel.Application();

# open a file
var wb = xl.Workbooks.Open("some_file.xlsx");


# close the file
wb.Close();

# close the application and release resources
xl.Quit();

#release the COM objects created as a final step:

Marshal.ReleaseComObject(wb);
Marshal.ReleaseComObject(xl);
 6
Author: yodag123, 2017-01-11 22:25:12