Hola amigos, tengo un problema a la hora de enviar los datos a una plantilla de word 2002. Concreto que el problema es en la exportación para word 2002 porque funciona correctamente para word 2008.
Trabajo con Visual Basic Net 2008 y el código es:
Imports Microsoft.Office.Interop
Dim WordApp As New Word.ApplicationClass
Dim wordDoc As Word.DocumentClass = Nothing
Dim RutaArchivo As Object = Nothing
RutaArchivo = Application.StartupPath & "archivo.doc"
****************************************************************************************************************************************
WordApp = CreateObject("word.application") --->
aquí da el error en word 2002, en word 2008 va bien ****************************************************************************************************************************************
WordApp.Visible = True
wordDoc = WordApp.Documents.Add(RutaArchivo, , , )
wordDoc.Tables(1).Cell(1, 2).Range.InsertAfter(MesesDelAxo)
For Each dr As DataRow In dtDatosCurso.Rows
''exporta datos de la BD a la tabla de word
wordDoc.Tables(2).Cell(1, 2).Range.InsertAfter(dr.Item(1).ToString)
wordDoc.Tables(2).Cell(1, 4).Range.InsertAfter(dr.Item(2).ToString)
wordDoc.Tables(2).Cell(2, 2).Range.InsertAfter(dr.Item(3).ToString)
wordDoc.Tables(2).Cell(2, 4).Range.InsertAfter(dr.Item(4).ToString)
wordDoc.Bookmarks.Item("centrofdo").Range.Text = dr.Item(5).ToString
Next
El error que sale es:
No se puede convertir el objeto COM del tipo 'System.__ComObject' al tipo
de clase 'Microsoft.Office.Interop.Word.ApplicationClass'. Los componentes
COM que especifican CLR y no admiten IProvideClassInfo o no tienen ningún
ensamblado de interoperabilidad registrado se ajustarán al tipo
__ComObject. Las instancias de este tipo no pueden convertirse a ninguna
otra clase; sin embargo, pueden convertirse en interfaces siempre que el
componente COM subyacente admita llamadas QueryInterface para el IID de la
interfaz.
y he puesto en References:
Microsoft.Office.Interop.Word, ver. 11
Os agradecería vuestra ayuda.
Saludos.