Exel y vb.net

26/06/2006 - 23:51 por SergioT | Informe spam
Hola

tengo un problema bastante raro con el Excel2003 desde vb.net
instancion una aplicacion excel, un libro y una hoja, luego opero con ellos
y finalmente cierro el libro , el excel y hasta le coloco nothing a los
objetos usados pero se queda el proceso excel corriendo, por lo menos eso
muestra el Adm de Tareas del XP

mato al excel asi:

miLibro.saveCopyAs(spath)
miLibro.close
miExcel.quit

milibro=nothing
miExcel=nothing
GC.Collect()


Que me falta para matar los procesos???? GRACIASSSSSSS
Salu2
Sergio T.

Preguntas similare

Leer las respuestas

#6 SergioT
19/07/2006 - 01:21 | Informe spam
Hola

te cuento que estoy intentando hacer funcionar tu ejemplo pero no lo logro
tengo un problema creo que en la sintaxis del codigo que me envias

la coneccion aparentemente se abre bien

pero luego en la parte de la creacion del comando que llena el libro tengo
lo siguiente:

.CommandText = "SELECT * INTO NombreHojaExcel " & _
"IN ''[Excel 8.0;Database=C:\Mis documentos\Libro28.xls]" & _
"FROM NombreArchivoTexto#txt"



ese que dice NomBreHoja que debo colocar ? algo asi como Hoja1 ó `[Hoja 1]
??
ese que dice nombre de archivotexto es algo asi ?
C:\temporal\mitexto.txt#txt
por ultimo despues de IN hay 2 apostrofes '' que parecen comillas y que no
se cierran, esta bien?

GRACIAS POR TU AYUDA y si tienes un link a ejemplos en vb.net sobre este
tema te agradeceria por que no hallo nada

Salu2
Sergio

"SoftJaén" escribió en el mensaje
news:
"SergioT" escribió:

Te paso la funcion que usa el Excel para que me des tu opinion, se trata
de una funcion que la uso en un proceso medio largo que consiste en hacer
una consulta a la BD, crear una planilla excel, luego usar esa plantilla
como un "origen de datos" de word de forma que en una plantilla pueda
convinar documentos con los datos de la planilla excel. Como veras solo
lo
uso al excel para generar el origen de datos a ser usado luego por Word
para convinar cartas. En la etapa inicial del proceso coloco el DS en un
texto que luego lo habro con Excel y lo convierto el libro, de eso se
trata la funcion que te paso a continuacion y donde el excel se queda
"trancado", Un detalle mas, esto lo hago en una clase que esta en un
proyecto de tipo "libreria de clases" que es usado por una aplicacion
asp.net, Con esto logro tener 2 cosas el documento Excel con la "base de
datos" y las cartas convinadas

'==>> 'Esta es la funcion que convierte un file texto en un Excel ESTA ES LA
QUE
MOLESTA CON EL EXCEL INMortAL
'==>> Public Sub TextToExcel




¡Vaya jaleo que tienes en el procedimiento! Me imagino que tendrás
desactivada la instrucción «Option Strict», porque de tenerla activada, no
serías capaz de ejecutar ni una sola línea de código. :-)

A simple vista, no observo nada extraño en el procedimiento «TextToExcel»,
que parece ser que es el que te deja el proceso de Excel en el
Administrador
de tareas, pero algo raro tienes que tener por ahí, para que una vez
llamado
el recolector de elementos no utilizados, ni siquiera se elimine el
proceso.

Desde luego, mi primer consejo sería que activaras la instrucción «Option
Strict», aún a riesgo de que te aparezcan multitud de líneas azules de
error. Pero si deseas corregir el problema, por ahí se empieza: activando
«Option Strict» y depurando los errores.

¿Has probado el ejemplo que he publicado? ¿Has observado que no se queda
el
proceso en memoria? Lo único que tienes que hacer es adaptar el ejemplo a
tus necesidades, porque no hay otro misterio.

Exc = CreateObject("Excel.Application")



¿Por qué utilizas la función CreateObject? Si tienes referenciada en tu
proyecto la biblioteca de Excel, dicha función sobra. Cámbiala por la
siguiente:

' Creamos una nueva instancia de Excel
Exc = New Excel.Application

De todas maneras, te voy a decir una cosa. Si tu intención es crear un
libro
de Excel con los datos de un archivo de texto delimitado, hay mejores
maneras de crearlo, de una forma más rápida y eficaz, sin utilizar para
nada
la biblioteca de Excel, y por tanto, sin tener que preocuparte que el
proceso de Excel se quede o no en el Administrador de Tareas. Simplemente
tienes que utilizar los ISAM de Texto y de Excel que nos proporciona el
motor de datos Microsoft Jet, para llevar a efecto la operación. Si deseas
conocer cómo se hace, ahí va un ejemplo:

Imports System.Data.OleDb

Dim cnn As New OleDbConnection

' Configuramos la cadena de conexión para
' abrir el archivo de texto, indicando
' únicamente la ruta de la carpeta donde
' se encuentra el archivo de texto.
'
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos; " & _
"Extended Properties='TEXT;'"

Try
' Creamos un comando para posteriormente
'crear el libro de Excel.
'
Dim cmd As New OleDbCommand
With cmd
' Construimos la consulta SQL para crear el
' libro de Excel.
.CommandText = "SELECT * INTO NombreHojaExcel " & _
"IN ''[Excel 8.0;Database=C:\Mis documentos\Libro28.xls]" & _
"FROM NombreArchivoTexto#txt"

.Connection = cnn
End With

' Abrimos la conexión
cnn.Open()

' Ejecutamos el comando
Dim regAfectados As Integer = cmd.ExecuteNonQuery()
cmd = Nothing

MessageBox.Show("Número de registros afectados: " & _
regAfectados.ToString)

Catch ex As OleDb.OleDbException
MessageBox.Show(ex.Errors(0).Message)

Catch ex As Exception
MessageBox.Show(ex.Message)

Finally
' Cerramos la conexión
cnn.Close()
cnn = Nothing

End Try

Fíjare con que facilidad se crea un flamante libro de Excel, con los datos
contenidos en un archivo de texto, sin utilizar para nada la biblioteca de
Excel. :-)

Si deseas conocer cómo trabajar con los ISAM de Texto y Excel, échale un
vistazo a los artículos que tengo publicados al respecto:

Trabajar con los datos de un archivo de texto
http://mvp-access.com/softjaen/arti...t_isam.htm

Trabajar con ADO, DAO y Excel
http://mvp-access.com/softjaen/arti..._excel.htm

Los ejemplos que aparecen en los artículos, fueron escritos para Visual
Basic 6.0, pero los puedes fácilmente adaptar a Visual Basic .NET, porque
como siempre digo, la teoría es la misma; no ha cambiado.

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 pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida