Is there a better way than to Kill() a process that archives the same result. When I Kill() an Excel process, the next time I open any Excel Worksheet, "Document Recovery" sidebar is opened, which I do not want to do.
Add a .Net reference to Microsoft.Office.Interop.Excel. Then take a look at the following code I knocked together:
Microsoft.Office.Interop.Excel.ApplicationClass _excel;
Microsoft.Office.Interop.Excel.Workbook _workBook;
private void Form1_Load(object sender, EventArgs e)
{
    _excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
    _excel.Visible = true;
    // Open the workbook
    _workBook = _excel.Workbooks.Open(@"DataSheet.xls",
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing);
}
private void btn_Close_Click(object sender, EventArgs e)
{
    GC.Collect();
    GC.WaitForPendingFinalizers();
    _workBook.Close(false, Type.Missing, Type.Missing);
    _excel.Quit();
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_workBook);
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_excel);
}
                        Not sure if this will help with Excel running in a web browser. If you can grab the instance of Excel that's running you can find the workbook you want to close...
try
{
    // Grab a reference to an open instance of Excel
    var oExcelApp =
        (Microsoft.Office.Interop.Excel.Application)
        Marshal.GetActiveObject("Excel.Application");
    // Loop around the workbooks to find the one you want to close
    for (int i = 1; i <= oExcelApp.Workbooks.Count; i++)
    {
        if (oExcelApp.Workbooks[i].Name == "requiredname")
            oExcelApp.Workbooks[i].Close(Type.Missing, Type.Missing, Type.Missing);
    }
    // Clear up...
    Marshal.FinalReleaseComObject(oExcelApp);
}
catch(Exception ex)
{
   // Something went wrong... 
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With