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.Appl icationCla ss' to interface type 'Microsoft.Office.Interop. Excel._App lication'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000- 0000000000 46}' 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.E xcel (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.
Unable to cast COM object of type 'Microsoft.Office.Interop.
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.E
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
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.E xcel._Appl ication (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
Try declaring excelApp as Microsoft.Office.Interop.E
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
ASKER
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
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.Off ice.Intero p.Excel"?
ASKER
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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
-------------------------- -
--------------------------
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
--------------------------
http://blogs.msdn.com/b/vsto/archive/2008/05/20/common-pitfalls-during-pia-deployment-and-installation.aspx