Unable to open another excel file (when one Excel is opened by .net)

Viewed 521

I have designed a .net application which will open an Excel file at the time of login and use it to print a report. It will be closed while logging out the user. I set visible to false for Excel file, so that user doesn't know about the background process.

But if anybody opens any other Excel file during this time, my report Excel file becomes visible and the Excel object is collapsed. I have to go to task manager and kill the all open Excel instances to fix this.

Code:

 Private Sub OK_Click(sender As Object, e As EventArgs) Handles OK.Click
        Try
            Dim dt As New DataTable()
            Dim Adapter As New SqlDataAdapter()
            ConnectMe()
            Dim SQLCmd As New SqlCommand("uspLogin", Con)
            SQLCmd.CommandType = CommandType.StoredProcedure
            SQLCmd.Parameters.AddWithValue("@pLoginName", UsernameTextBox.Text.Trim())
            SQLCmd.Parameters.AddWithValue("@pPassword", PasswordTextBox.Text.Trim())
            Adapter.SelectCommand = SQLCmd
            Adapter.Fill(dt)
            SQLCmd.Dispose()
            If dt.Rows.Count > 0 Then
                Me.Cursor = Cursors.WaitCursor
                Loading.Show()
                OpenAllTempaltes()            
                Me.Hide()                
                Con.Close()
                Me.Cursor = Cursors.Arrow
            Else
                MsgBox("Your Credential is Wrong !!!", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Login")
                UsernameTextBox.Text = ""
                PasswordTextBox.Text = ""              
                UsernameTextBox.Focus()
            End If
        Catch ex As Exception         
            Application.Exit()
        End Try
    End Sub

 Public Sub OpenAllTempaltes()
        Try                                   
            xlWorkBook = xlApp.Workbooks.Open(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Templates", "Excel_Templates_GST.xlsm"), 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, True)                
        Catch ex As Exception
            Throw
        End Try
    End Sub

    Public Sub CloseAllTempaltes()
        Try
            CleanUp(xlApp, xlWorkBook, xlWorkSheet)
        Catch ex As Exception
            ExceptionLog("PrintPage", "CloseAllTempaltes", ex.ToString(), DateTime.Now.ToString("dd-MMM-yyyy"))
        Finally
            GC.Collect()
        End Try
    End Sub

How can I prevent this?

3 Answers

If one excel file is open, and if you are editing a cell, you can't open a second Excel file until you stop editing that cell. You can hit "ESC" in your open document and that will get you out of editing the first file and should allow the second to open. I see that there are other solutions (I hope they worked) but I am guessing this may be the issue.

Related