title: Writing to an existing Excel File using c#
body: <p>I am trying to open (or create a new xls) Excel file and write some values to it. Although, the program below works just fine if I simply create a new xls file, I encounter the some problem in line</p>
  
  <pre><code>**mWorkBook = oXL.Workbooks.Open (path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);**
  </code></pre>
  
  <p>Here's the error:
  'LOG.xls' cannot be accessed. The file may be corrupted, located on a server that is not responding, or read-only.
  It's not read-only, it's not corrupted(because sometime the file is created on Run Time).
  What is the problem then?</p>
  
  <pre><code>private static Microsoft.Office.Interop.Excel.Workbook mWorkBook;
      private static Microsoft.Office.Interop.Excel.Sheets mWorkSheets;
      private static Microsoft.Office.Interop.Excel.Worksheet mWSheet1;
      private static Microsoft.Office.Interop.Excel.Application oXL;
  
      private void btnSignIn_Click ( object sender, EventArgs e )
      {
  
          string path = "D:\\LOG.xls";
          if(!File.Exists(path))
          {
              File.Create (path);
          }
  
  
          oXL = new Microsoft.Office.Interop.Excel.Application ();
          oXL.Visible = true;
          oXL.DisplayAlerts = false;
          //error on this line
          mWorkBook = oXL.Workbooks.Open (path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
  
          //Get all the sheets in the workbook
          mWorkSheets = mWorkBook.Worksheets;
  
          //Get the allready exists sheet
          mWSheet1 = (Microsoft.Office.Interop.Excel.Worksheet)mWorkSheets.get_Item ("Sheet1");
  
          Microsoft.Office.Interop.Excel.Range range = mWSheet1.UsedRange;
  
          int colCount = range.Columns.Count;
          int rowCount = range.Rows.Count;
  
          for ( int index = 1; index &lt; 15; index++ )
          {
              mWSheet1.Cells [rowCount + index, 1] = rowCount + index;
              mWSheet1.Cells [rowCount + index, 2] = "New Item" + index;
          }
  
          mWorkBook.SaveAs (path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
          Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
          Missing.Value, Missing.Value, Missing.Value,
          Missing.Value, Missing.Value);
  
          mWorkBook.Close (Missing.Value, Missing.Value, Missing.Value);
          mWSheet1 = null;
  
          mWorkBook = null;
  
          oXL.Quit ();
          GC.WaitForPendingFinalizers ();
          GC.Collect ();
          GC.WaitForPendingFinalizers ();
          GC.Collect ();
      }
  </code></pre>