Abrir libro de Excel

19/06/2006 - 21:21 por Amatteur | Informe spam
He preparado una aplicacion para abrir archivos de Excel y de Word y despues
imprimirlos. Con los de Word he tenido exito. Con los de Excel no lo he
logrado pues me sale este error

An unhandled exception of type ´System.Runtime.InteropServices.COMException´
occurred in Project1.exe

Additional information Old format or invalid type library

Preguntas similare

Leer las respuestas

#1 SoftJaén
19/06/2006 - 23:21 | Informe spam
"Amatteur" escribió:

He preparado una aplicacion para abrir archivos de Excel y de Word
y despues imprimirlos. Con los de Word he tenido exito. Con los de
Excel no lo he logrado pues me sale este error

An unhandled exception of type
´System.Runtime.InteropServices.COMException´
occurred in Project1.exe

Additional information Old format or invalid type library



Hola:

Como no has expuesto código fuente alguno, ignoro lo que estás ejecutando, y
cómo lo estás ejecutando.

Si por casualidad tienes referenciada en tu proyecto la versión 10.0
(Microsoft Excel XP), lo mismo tienes que descargar el «Ensamblado de
Interoperabilidad Primario» (PIA), tal y como se detalla en el siguiente
artículo de la Base del Conocimiento (servicio de traducción automática), y
al cual te remito por si tiene algo que ver con el asunto en cuestión:

Ensamblado de interoperabilidad primario (PIA) de Microsoft Office XP está
disponible para descarga
http://support.microsoft.com/kb/328912/

Si por el contrario tienes referenciada en tu solución de .NET la versión
11.0 (Microsoft Excel 2003), y el código fuente que intentas ejecutar es
correcto, entiendo que no tienes por qué obtener excepción alguna, siempre y
cuando tengas importado el espacio de nombres «Microsoft.Office.Interop».

Para conocer cómo trabajar con Excel desde Visual Basic .NET, te remito al
siguiente artículo de la Base del Conocimiento (en inglés):

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/defaul...-US;301982


Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Amatteur
20/06/2006 - 18:46 | Informe spam
Gracias por tu ayuda. Este es el código que estoy usando. Tengo instalado
Excel 2003 y por algún motivo cuando llega el momento de abrir el libro de
Excel me da el error que referí ayer.

Espero que me puedas ayudar. De nuevo, mil gracias.

Dim MensFolder As Object
Dim MensFile As Object
Dim MensExcel As Microsoft.Office.Interop.Excel.Application
Dim MensWord As Microsoft.Office.Interop.Word.Application
Dim MensRooth, MensList
Dim MensMes, a As String

Sub Main()
MensExcel = CType(CreateObject("Excel.Application"),
Microsoft.Office.Interop.Excel.Application)
MensWord = CType(CreateObject("Word.Application"),
Microsoft.Office.Interop.Word.Application)
MensExcel = GetObject(, "Excel.Application")
MensExcel.Visible = True
MensWord.Visible = True

MensMes = InputBox(Prompt:="Favor de indicar el mes de las
mensualidades", Title:="MENSUALIDADES")

MensRooth = CreateObject("Scripting.FileSystemObject")
MensFolder = MensRooth.GetFolder("D:\My
Documents\Administración\Mensualidades\Solicitudes\" & MensMes)
MensList = MensFolder.Files

For Each MensFile In MensList
If MensFile.Type = "Microsoft Excel Worksheet" Then
a = MensFile.Name
MensExcel.Workbooks.Open(MensFile.Path)
MensExcel.Workbooks(a).Activate()
If MensExcel.ActiveWorkbook.Sheets.Count > 1 Then
MensExcel.ActiveWorkbook.Sheets(2).Activate()
With MensExcel.ActiveSheet.PageSetup
.PrintQuality = 600
.Orientation = "xlPortrait"
.PaperSize = "xlPaperA4"
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
MensExcel.ActiveWorkbook.Sheets(2).PrintOut()
MensExcel.ActiveWorkbook.Sheets(1).Activate()
With MensExcel.ActiveSheet.PageSetup
.PrintQuality = 600
.Orientation = "xlPortrait"
.PaperSize = "xlPaperA4"
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
MensExcel.ActiveWorkbook.Sheets(1).PrintOut()
MensExcel.ActiveWorkbook.Close(SaveChanges:=False)
ElseIf MensExcel.ActiveWorkbook.Sheets.Count = 1 Then
MensExcel.ActiveWorkbook.Sheets(1).Activate()
With MensExcel.ActiveSheet.PageSetup
.PrintQuality = 600
.Orientation = "xlPortrait"
.PaperSize = "xlPaperA4"
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
MensExcel.ActiveWorkbook.Sheets(1).PrintOut()
MensExcel.ActiveWorkbook.Close(SaveChanges:=False)
End If
ElseIf MensFile.Type = "Rich Text Format" Then
MensWord.Documents.Open(MensFile.Path, Visible:=True)
MensWord.ActiveDocument.PrintOut()
MensWord.ActiveDocument.Close()
ElseIf MensFile.Type = "Text Document" Then
MensWord.Documents.Open(MensFile.Path)
MensWord.ActiveDocument.PrintOut()
MensWord.ActiveDocument.Close()
ElseIf MensFile.Type = "Microsoft Word Document" Then
MensWord.Documents.Open(MensFile.Path, Visible:=True)
MensWord.ActiveDocument.PrintOut()
MensWord.ActiveDocument.Close()
ElseIf MensFile.Type = "PDF File" Then
MensFile.Move("D:\My
Documents\Administración\Mensualidades\Solicitudes\" & MensMes &
"\Momentáneo\")
End If
Next
End Sub


"SoftJaén" wrote:

"Amatteur" escribió:

> He preparado una aplicacion para abrir archivos de Excel y de Word
> y despues imprimirlos. Con los de Word he tenido exito. Con los de
> Excel no lo he logrado pues me sale este error
>
> An unhandled exception of type
> ´System.Runtime.InteropServices.COMException´
> occurred in Project1.exe
>
> Additional information Old format or invalid type library

Hola:

Como no has expuesto código fuente alguno, ignoro lo que estás ejecutando, y
cómo lo estás ejecutando.

Si por casualidad tienes referenciada en tu proyecto la versión 10.0
(Microsoft Excel XP), lo mismo tienes que descargar el «Ensamblado de
Interoperabilidad Primario» (PIA), tal y como se detalla en el siguiente
artículo de la Base del Conocimiento (servicio de traducción automática), y
al cual te remito por si tiene algo que ver con el asunto en cuestión:

Ensamblado de interoperabilidad primario (PIA) de Microsoft Office XP está
disponible para descarga
http://support.microsoft.com/kb/328912/

Si por el contrario tienes referenciada en tu solución de .NET la versión
11.0 (Microsoft Excel 2003), y el código fuente que intentas ejecutar es
correcto, entiendo que no tienes por qué obtener excepción alguna, siempre y
cuando tengas importado el espacio de nombres «Microsoft.Office.Interop».

Para conocer cómo trabajar con Excel desde Visual Basic .NET, te remito al
siguiente artículo de la Base del Conocimiento (en inglés):

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/defaul...-US;301982


Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 SoftJaén
21/06/2006 - 17:48 | Informe spam
"Amatteur" escribió:

Tengo instalado Excel 2003 y por algún motivo cuando llega
el momento de abrir el libro de Excel me da el error que referí ayer.




He ejecutado el código en Visual Basic 2005, y las únicas excepciones que
obtengo es a la hora de imprimir, pero en ningún caso obtengo la excepción
«An unhandled exception of type System.Runtime.InteropServices.COMException
occurred in Project1.exe».

Por supuesto, he desactivado la instrucción «Option Strict», y he
referenciado en el proyecto las bibliotecas de Excel 2003 y Microsoft
Scripting Rutime, efectuando las siguientes declaraciones de las variables
objeto:

Option Strict Off
Imports Microsoft.Office.Interop

Dim MensFolder As Scripting.Folder
Dim MensFile As Scripting.File
Dim MensExcel As Excel.Application
Dim MensRooth As Scripting.FileSystemObject
Dim MensList As Scripting.Files
Dim MensMes, a As String

Sub Main()

MensExcel = CType(CreateObject("Excel.Application"), Excel.Application)
MensExcel.Visible = True
MensWord.Visible = True

.
.

End Sub

Ignoro a que es debido el error que obtienes.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 SoftJaén
21/06/2006 - 18:05 | Informe spam
Como te he comentado que he referenciado la biblioteca «Microsoft Scripting
Rutime», obviamente he tenido que crear una nueva instancia del objeto
FileSystemObject:

MensRooth = New Scripting.FileSystemObject
MensFolder = MensRooth.GetFolder( _
"D:\My Documents\Administración\Mensualidades\Solicitudes\" &
MensMes)
MensList = MensFolder.Files

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida