
Exportar DataGrid en fichero excel csv
Publicado por nano (20 intervenciones) el 28/07/2016 20:22:32
Muy buenas a todos!!!
Tengo creada una pequeña app para una vez insertados los registros en una tabla de SQL SERVER, pueda exportarlos a un fichero de excel.
El proceso se realiza correctamente excepto por un detalle que os comento. Cuando me sale la ventana de elegir la ubicación del fichero de excel, en la imagen adjunta aparece como "Buscar carpeta" debo de darle dos veces a Aceptar para que se me cierre.
El codigo del botón es el siguiente:
Private Sub btnexportar_Click(sender As Object, e As EventArgs) Handles btnexportar.Click
archivoguardar = InputBox("Ingrese el Nombre del archivo", "Nombre", "Cursos")
If Not archivoguardar = "" Then
If Not exportar_excel() Then
MsgBox("No se pudo ejecutar el archivo")
End If
exportar_excel()
End If
End Sub
Y el código de la función exportar es esta:
Private Function exportar_excel() As Boolean
Dim cadenaubicacion As String
Dim directorio As New FolderBrowserDialog
If directorio.ShowDialog = DialogResult.OK Then
cadenaubicacion = directorio.SelectedPath
Try
Dim stream As Stream
Dim escritor As StreamWriter
Dim fila = Datalistado.Rows.Count
Dim columnas = Datalistado.Columns.Count
Dim archivo As String = cadenaubicacion & "\" & archivoguardar & ".csv"
Dim linea As String = ""
Dim filadata, column As Int32
File.Delete(archivo)
stream = File.OpenWrite(archivo)
escritor = New StreamWriter(stream, System.Text.Encoding.UTF8)
For column = 1 To columnas - 1
linea = linea & Datalistado.Columns(column).Name & ";"
Next
linea = Mid(CStr(linea), 1, linea.ToString.Length - 1)
escritor.WriteLine(linea)
linea = Nothing
For filadata = 0 To fila - 1
For column = 1 To columnas - 1
linea = linea & CStr(Datalistado.Item(column, filadata).Value) & ";"
Next
linea = Mid(CStr(linea), 1, linea.ToString.Length - 1)
escritor.WriteLine(linea)
linea = Nothing
Next
escritor.Close()
Try
''Process.Start(archivo)
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End If
Return False
End Function
Cual puede ser el error, que no acabo de ver, para que no se me cierre la ventana de "Buscar Carpeta" la primera vez que acepto y que realmente os confirmo que me exporta el excel?
Muchas gracias de antemano y saludos a todos!!


Tengo creada una pequeña app para una vez insertados los registros en una tabla de SQL SERVER, pueda exportarlos a un fichero de excel.
El proceso se realiza correctamente excepto por un detalle que os comento. Cuando me sale la ventana de elegir la ubicación del fichero de excel, en la imagen adjunta aparece como "Buscar carpeta" debo de darle dos veces a Aceptar para que se me cierre.
El codigo del botón es el siguiente:
Private Sub btnexportar_Click(sender As Object, e As EventArgs) Handles btnexportar.Click
archivoguardar = InputBox("Ingrese el Nombre del archivo", "Nombre", "Cursos")
If Not archivoguardar = "" Then
If Not exportar_excel() Then
MsgBox("No se pudo ejecutar el archivo")
End If
exportar_excel()
End If
End Sub
Y el código de la función exportar es esta:
Private Function exportar_excel() As Boolean
Dim cadenaubicacion As String
Dim directorio As New FolderBrowserDialog
If directorio.ShowDialog = DialogResult.OK Then
cadenaubicacion = directorio.SelectedPath
Try
Dim stream As Stream
Dim escritor As StreamWriter
Dim fila = Datalistado.Rows.Count
Dim columnas = Datalistado.Columns.Count
Dim archivo As String = cadenaubicacion & "\" & archivoguardar & ".csv"
Dim linea As String = ""
Dim filadata, column As Int32
File.Delete(archivo)
stream = File.OpenWrite(archivo)
escritor = New StreamWriter(stream, System.Text.Encoding.UTF8)
For column = 1 To columnas - 1
linea = linea & Datalistado.Columns(column).Name & ";"
Next
linea = Mid(CStr(linea), 1, linea.ToString.Length - 1)
escritor.WriteLine(linea)
linea = Nothing
For filadata = 0 To fila - 1
For column = 1 To columnas - 1
linea = linea & CStr(Datalistado.Item(column, filadata).Value) & ";"
Next
linea = Mid(CStr(linea), 1, linea.ToString.Length - 1)
escritor.WriteLine(linea)
linea = Nothing
Next
escritor.Close()
Try
''Process.Start(archivo)
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End If
Return False
End Function
Cual puede ser el error, que no acabo de ver, para que no se me cierre la ventana de "Buscar Carpeta" la primera vez que acepto y que realmente os confirmo que me exporta el excel?
Muchas gracias de antemano y saludos a todos!!


Valora esta pregunta


0