Reputation: 73
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
Upvotes: 7
Views: 25884
Reputation: 141
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);
Upvotes: 14
Reputation: 6571
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();
Upvotes: 5