Link to home
Start Free TrialLog in
Avatar of toddpotter
toddpotter

asked on

vb.net Office Excel Interop Assembly Fails

I get the following error when trying to export my dataset to excel.  

Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).

Apparently the interop assemblies are not registered.  Failure occurs on the 'excelApp.Workbooks.Add" is executed.  I have added the reverence to Microsoft.Office.Interop.Excel (Version 12.0.0.0).  I have Office 2007 on my PC.  I have used this exact code in the past and it worked fine.  Do I need to register the asseblies again?  If so, how.  I have already repaired Office 2007 and that did not work.  I'm running Visual Studio 2008 with.net framework of 3.5

Thanks for the help.
Select Case TC_ServiceData.SelectedIndex
            Case Is = 1
                Me.Cursor = Cursors.WaitCursor
                Dim excelApp As New Microsoft.Office.Interop.Excel.Application()
                Dim excelBook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Add
                Dim excelWorksheet As Microsoft.Office.Interop.Excel.Worksheet = _
                    CType(excelBook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet)
                excelApp.Visible = False

                With excelWorksheet
                    'Creates connections to pull data to DataSet

                    Dim dr As DataRow
                    Dim i As Integer = 2
                    .Range("A1").Value = "TECHNICIAN"
                    .Range("A1").Font.Bold = True
                    .Range("A1").ColumnWidth = 15
                    .Range("B1").Value = "CALL DAY"
                    .Range("B1").Font.Bold = True
                    .Range("B1").ColumnWidth = 15
                    .Range("C1").Value = "TIME"
                    .Range("C1").Font.Bold = True
                    .Range("C1").ColumnWidth = 15
                    .Range("C1").Value = "STATUS"
                    .Range("C1").Font.Bold = True
                    .Range("C1").ColumnWidth = 15
                    .Range("C1").Value = "CALL NUMBER"
                    .Range("C1").Font.Bold = True
                    .Range("C1").ColumnWidth = 15
                    .Range("C1").Value = "CUSTOMER"
                    .Range("C1").Font.Bold = True
                    .Range("C1").ColumnWidth = 50

                    'Populate Excel spreadsheet
                    Try
                        For Each dr In mDataSet.Tables(0).Rows

                            .Range("A" & i.ToString).Value = dr("controlId")
                            .Range("B" & i.ToString).Value = dr("orderId")
                            .Range("C" & i.ToString).Value = dr("pickupDate")
                            i += 1


                        Next
                    Catch ex As Exception
                        Me.Cursor = Cursors.Default
                        MessageBox.Show(ex.Message)
                    End Try
                    'Make Excel visible
                    excelApp.Visible = True
                    Me.Cursor = Cursors.Default
                End With
                Me.Cursor = Cursors.Default
            Case Is = 1


        End Select

Open in new window

Avatar of nepaluz
nepaluz
Flag of United Kingdom of Great Britain and Northern Ireland image

Avatar of toddpotter
toddpotter

ASKER

No. That didn't get me anywhere.
Hmmmm! OK.
Office is just a bit temperamental like that sometimes.

Try declaring excelApp as Microsoft.Office.Interop.Excel._Application (note the underscore). This sometimes works for similar issues.

It does sound like a PIA issue may be the cause. Have you got more than one version of the PIA installed?

Pete
Xenacode Ltd
Using the underscore did not work.

I have attached two screenshots - one of the assembly folder and one of my program list.  I have MS Office 2007 installed (with every option) and a seperate Microsoft Office 2007 Interop Assemblies.  I removed the 'Microsoft Office 2007 Interop Assemblies" yesterday and repaired office 2007 thinking there may be a conflict but it had the same results.  


assembly.PNG
programs.PNG
have you got anything in the GAC with a name like "Policy.12.0.Microsoft.Office.Interop.Excel"?
Yes Policy.11.0.Microsoft.Office.Interop.Excel
assembly2.PNG
ASKER CERTIFIED SOLUTION
Avatar of xenacode
xenacode
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I had a copy of Microsoft Project Beta 2010 on my machine.  Once I uninstalled it, the app no longer errors on the excelapp.Workbooks.Add but when it catches a breakpoint VS hands and comes back with an error of:
---------------------------
Microsoft Visual Studio
---------------------------
A fatal error has occurred and debugging needs to be terminated. For more details, please see the Microsoft Help and Support web site. HRESULT=0x80131c08. ErrorCode=0x0.
---------------------------
OK  
---------------------------