Exportar dataset a Excel sin COM

29/09/2006 - 16:08 por Carlos Maggiotti | Informe spam
Buenas gente...

Hay manera de exportar un dataset a un Excel 97 sin pasar por un Interop?

Saludos y gracias de antemano...

CarlosMag

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
29/09/2006 - 17:27 | Informe spam
"Carlos Maggiotti" wrote in message
news:
Hay manera de exportar un dataset a un Excel 97 sin pasar por un Interop?



Hay un par de formas. Una es grabar los datos en un CSV (fichero de texto
con los valores separados por comas), y ejecutar "Excel fichero.csv", con lo
que sale el Excel cargado con los datos.
La otra es usar OleDb junto con el driver para Excel, con lo que tu
programa "ve" el Excel como si fuera una base de datos y se pueden exportar
los datos con sentencias similares al SQL. Tienes que buscar la
documentación del driver correspondiente porque la sintaxis a emplear es un
poco peculiar, no es SQL estandard.
Respuesta Responder a este mensaje
#2 SoftJaén
30/09/2006 - 11:00 | Informe spam
"Carlos Maggiotti" preguntó:

Hay manera de exportar un dataset a un Excel 97 sin pasar por un Interop?



Por supuesto que la hay. Pero como ha indicado el compañero Alberto, todo
pasa por crear primeramente un archivo de texto delimitado, digamos que
temporal, para posteriormente, mediante la utilización conjunta de los ISAM
de Excel y Texto, puedas importar los datos al libro de Excel 97.

Para crear el archivo de texto delimitado, con los datos contenidos en el
objeto DataSet, hasta lo mismo te puede servir el ejemplo que encontrarás en
la siguiente dirección:

Cómo crear un archivo de texto delimitado con los datos existentes en un
DataSet
http://mvp-access.com/softjaen/base...onet09.htm

Si usas el procedimiento descrito en el ejemplo, tal y como aparece, la
primera línea del archivo de texto NO CONTIENE los nombres de los campos o
columnas, una observación a tener MUY PRESENTE, si vas a utilizar el ISAM de
texto.

Una vez creado el archivo de texto, vamos a suponer que tienes en tu libro
de Excel, una hoja de trabajo llamada «Hoja1», donde en la primera fila
aparecen los nombres de las columnas. Pues bien, importarías los datos
ejecutando el siguiente código:

' Abrimos una conexión con el libro de Excel, indicando que
' la primera línea de la hoja o del rango de celdas, NO
' CONTIENE el nombre de las columnas.
'
Dim cnn As New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Libro20.xls;" & _
"Extended Properties='Excel 8.0;HDR=No'")

Try
' Creamos la consulta SQL de importación de datos. Igualmente,
' indicamos que la primera fila del archivo de texto,
' NO CONTIENE el nombre de los campos.
'
Dim sql As String = _
"INSERT INTO [Hoja1$] " & _
"SELECT * FROM [Archivo#txt] " & _
"IN ''[TEXT;DATABASE=C:\Mis documentos;HDR=No]"

' Creamos un objeto Command para ejecutar la consulta.
'
Dim cmd As New OleDbCommand(sql, cnn)

' Abrimos la conexión
'
cnn.Open()

' Ejecutamos la consulta.
'
Dim regAfectados As Integer = cmd.ExecuteNonQuery

' Mostramos los registros añadidos.
'
MessageBox.Show(regAfectados.ToString)

Catch ex As Exception
' Se ha producido una excepción.
'
MessageBox.Show(ex.Message)

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

End Try

Si todo se ha ejecutado satisfactoriamente, habrás insertado en tu libro de
Excel los datos existentes en el objeto DataSet.

Si deseas más información sobre los ISAM de Excel y Texto, te remito a los
siguientes artículos que tengo escritos, haciendo la salvedad que, aunque
los ejemplos que aparecen en los mismos son para ejecutarlos con Visual
Basic clásico, la teoría es la misma; no ha cambiado nada, porque tanto en
Visual Basic clásico como en .net, se hace uso del motor de datos Microsoft
Jet.

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

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

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