• Domingo 17 de Noviembre de 2024, 20:38

Autor Tema:  exportar a word  (Leído 4312 veces)

junahu

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
exportar a word
« en: Martes 1 de Septiembre de 2009, 20:20 »
0
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.

junahu

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: exportar a word
« Respuesta #1 en: Jueves 3 de Septiembre de 2009, 20:12 »
0
ya lo solucioné.
Puse  en References:
Microsoft.Office.Interop.Word, ver. 12 en vez de la 11 y tuve que meter a mano en el bin la dll:
Microsoft.Office.Interop.Word.dll porque no me ponía.

Saludos
 :D