I am writing this particular code in C# to write to an excel file.
public partial class WriteExcelForm : Form
{
    public WriteExcelForm()
    {
        InitializeComponent();
    }
    private void writeExcelButton_Click(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
        if (xlApp == null)
        {
            MessageBox.Show("Excel is not installed!!!");
            return;
        }
        Excel.Workbooks xlWorkBooks = xlApp.Workbooks;
        Excel.Workbook xlWorkBook = xlWorkBooks.Add(Type.Missing);
        Excel.Worksheet xlWorkSheet = xlWorkBook.ActiveSheet;
        xlWorkSheet.Name = "sample";
        Excel.Range range1 = (Excel.Range)xlWorkSheet.Cells[1, 1];
        range1.Value = "dhiraj";
        Excel.Range range2 = xlWorkSheet.Range["A2"];
        range2.Value = "dhiraj";
        xlWorkBook.SaveAs("C:\\output.xlsx");
        //Properly closing the excel app
        GC.Collect();
        GC.WaitForPendingFinalizers();
        xlWorkBook.Close(false, Type.Missing, Type.Missing);
        xlApp.Quit();
        Marshal.FinalReleaseComObject(range1);
        Marshal.FinalReleaseComObject(range2);
        Marshal.FinalReleaseComObject(xlWorkSheet);
        Marshal.FinalReleaseComObject(xlWorkBook);
        Marshal.FinalReleaseComObject(xlWorkBooks);
        Marshal.FinalReleaseComObject(xlApp);
    }
}
If I run this code, the excel.exe does not quit, but keeps on hanging around in the background.
However, if I comment out this particular line
        Excel.Range range1 = (Excel.Range)xlWorkSheet.Cells[1, 1];
        range1.Value = "dhiraj";
the excel.exe quits elegantly.
What am I missing here?
EDIT: I have solved my issue. Posting my findings as answer.
P.S: Do not know why I was down voted, I did research a lot before posting this question.
 
     
    