Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - Proper way to open and close an excel file programmatically

Tags:

c#

excel

I can't seem to find the proper way to open and close an excel file.

Here is what I have to open my file, which I find overly complicated:

        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);

I have no idea how to properly close it. I need to save it with the same path and make sure excel is not still running in the background after it is closed.

Can someone make it easy for me? Thanks

like image 562
Simon Avatar asked Jun 11 '15 22:06

Simon


2 Answers

Release the COM objects when completed...

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);
like image 107
yodag123 Avatar answered Oct 31 '22 00:10

yodag123


Semi pseudo-code:

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();
like image 41
David Avatar answered Oct 31 '22 00:10

David