none
Como hago para poder guardar los datos de un datagrind con informacion de una base datosm en un bloc de notas, o sea un archivo .txt RRS feed

Respuestas

  • Proba con esto... debes reemplazar el nombre del objeto datagridview asi como la ruta... espero que te sirva al menos como base para lo que necesitas.

            'se debe importar system.IO  (Imports System.IO)
            'm variable para guardar linea de texto a grabar en archivo
            Dim m As String
     
            'Crear archivo de salida de texto
            Using outputFile As New StreamWriter("d:\" & Convert.ToString("MiArchivo.txt"), True)
     
                'recorro cada fila de la grilla 
                For Each d As DataGridViewRow In Grilla.Rows
                    m = ""
                    'recorro cada celda de la fila
                    For Each f As DataGridViewCell In d.Cells
                        m &= f.Value.ToString & "|" 'en este ejemplo utilizo como separador el caracter |
                    Next
                    'grabo una linea de salida
                    outputFile.WriteLine(m)
                Next
     
            End Using
                           

    Espero que te sirva

    Ing. Hugo A. Gsell


    Hugo A. Gsell


    jueves, 2 de noviembre de 2017 1:05
  • Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    	Using sfd As New SaveFileDialog
    		If sfd.ShowDialog() = DialogResult.OK Then
    			Dim Text = New System.Text.StringBuilder()
    
    			'Header text
    			Text.AppendLine(String.Join(", ", DataGridView1.Columns.Cast(Of DataGridViewColumn).
    				Select(Function(h) h.HeaderText)))
    			'Rows
    			For Each Row As DataGridViewRow In DataGridView1.Rows
    				If Not Row.IsNewRow Then Text.AppendLine(String.Join(", ", Row.Cells.
    					Cast(Of DataGridViewCell).Select(Function(c) Convert.ToString(c.Value))))
    			Next
    			'Save file
    			System.IO.File.WriteAllText(sfd.FileName, Text.ToString)
    		End If
    	End Using
    
    End Sub

    Amigo si me sirvio y demasiado, solo que no me lo crea un archivo txt, si no es otro formato.
    • Propuesto como respuesta Pablo Rubio jueves, 16 de noviembre de 2017 21:56
    • Marcado como respuesta Pablo Rubio jueves, 16 de noviembre de 2017 21:56
    lunes, 13 de noviembre de 2017 15:09
  • No hay un automatismo genérico que te lo haga todo de golpe. Tendrás que escribir dos bucles anidados que vayan recorriendo cada una de las filas y columnas del DataGrid, sacando el Value de la celda, y concatenándolo en una cadena (intercalando los separadores que consideres oportunos) para formar el contenido que quieres salvar en el txt. Una vez que tengas el String con todos los datos, puedes salvarlo a un txt mediante System.IO.File.WriteAllText.

    No has dicho nada acerca de si el DataGrid lo tienes enlazado mediante su DataSource a alguna estructura de datos (como por ejemplo un DataTable). Si así fuera, es posible que resulte más simple convertir a texto dicha estructura que convertirlo desde el propio DataGrid.

    miércoles, 1 de noviembre de 2017 18:45
  • Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    	Using sfd As New SaveFileDialog
    		If sfd.ShowDialog() = DialogResult.OK Then
    			Dim Text = New System.Text.StringBuilder()
    
    			'Header text
    			Text.AppendLine(String.Join(", ", DataGridView1.Columns.Cast(Of DataGridViewColumn).
    				Select(Function(h) h.HeaderText)))
    			'Rows
    			For Each Row As DataGridViewRow In DataGridView1.Rows
    				If Not Row.IsNewRow Then Text.AppendLine(String.Join(", ", Row.Cells.
    					Cast(Of DataGridViewCell).Select(Function(c) Convert.ToString(c.Value))))
    			Next
    			'Save file
    			System.IO.File.WriteAllText(sfd.FileName, Text.ToString)
    		End If
    	End Using
    
    End Sub

    viernes, 10 de noviembre de 2017 19:12

Todas las respuestas

  • No hay un automatismo genérico que te lo haga todo de golpe. Tendrás que escribir dos bucles anidados que vayan recorriendo cada una de las filas y columnas del DataGrid, sacando el Value de la celda, y concatenándolo en una cadena (intercalando los separadores que consideres oportunos) para formar el contenido que quieres salvar en el txt. Una vez que tengas el String con todos los datos, puedes salvarlo a un txt mediante System.IO.File.WriteAllText.

    No has dicho nada acerca de si el DataGrid lo tienes enlazado mediante su DataSource a alguna estructura de datos (como por ejemplo un DataTable). Si así fuera, es posible que resulte más simple convertir a texto dicha estructura que convertirlo desde el propio DataGrid.

    miércoles, 1 de noviembre de 2017 18:45
  • Proba con esto... debes reemplazar el nombre del objeto datagridview asi como la ruta... espero que te sirva al menos como base para lo que necesitas.

            'se debe importar system.IO  (Imports System.IO)
            'm variable para guardar linea de texto a grabar en archivo
            Dim m As String
     
            'Crear archivo de salida de texto
            Using outputFile As New StreamWriter("d:\" & Convert.ToString("MiArchivo.txt"), True)
     
                'recorro cada fila de la grilla 
                For Each d As DataGridViewRow In Grilla.Rows
                    m = ""
                    'recorro cada celda de la fila
                    For Each f As DataGridViewCell In d.Cells
                        m &= f.Value.ToString & "|" 'en este ejemplo utilizo como separador el caracter |
                    Next
                    'grabo una linea de salida
                    outputFile.WriteLine(m)
                Next
     
            End Using
                           

    Espero que te sirva

    Ing. Hugo A. Gsell


    Hugo A. Gsell


    jueves, 2 de noviembre de 2017 1:05
  • Proba con esto... debes reemplazar el nombre del objeto datagridview asi como la ruta... espero que te sirva al menos como base para lo que necesitas.

            'se debe importar system.IO  (Imports System.IO)
            'm variable para guardar linea de texto a grabar en archivo
            Dim m As String
     
            'Crear archivo de salida de texto
            Using outputFile As New StreamWriter("d:\" & Convert.ToString("MiArchivo.txt"), True)
     
                'recorro cada fila de la grilla 
                For Each d As DataGridViewRow In Grilla.Rows
                    m = ""
                    'recorro cada celda de la fila
                    For Each f As DataGridViewCell In d.Cells
                        m &= f.Value.ToString & "|" 'en este ejemplo utilizo como separador el caracter |
                    Next
                    'grabo una linea de salida
                    outputFile.WriteLine(m)
                Next
     
            End Using
                           

    Espero que te sirva

    Ing. Hugo A. Gsell


    Hugo A. Gsell


    Esto mismo lo puedo emplear con un savefiledialog?
    viernes, 10 de noviembre de 2017 14:41
  • Hola muy buenas, necesito ayuda, como podria adaptar este codigo que me encontre aqui mismo, que de hecho se me hizo de mucha utilidad y me cae a la perfeccion, pero yo lo usar mediante un savefiledialog, como podria modificarlo.

     Friend Sub CrearArchivoTexto(sFile As String)

            If (String.IsNullOrEmpty(sFile)) Then
                MessageBox.Show("No se ha especificado el nombre del archivo de texto.")
                ' Abandonamos el procedimiento
                Return
            End If

            If (DataGridView2.RowCount = 0) Then
                MessageBox.Show("El datagridview esta vacio")
                ' Abandonamos el procedimiento
                Return
            End If

            ' Si no existe la carpeta la creamos.
            '
            Dim folder As String = "C:\Carpetatxt"
            If (Not Directory.Exists(folder)) Then
                Directory.CreateDirectory(folder)
            End If

            ' Si por casualidad se ha especificado la ruta en el nombre
            ' del archivo, nos quedamos solamente con su nombre.
            '
            sFile = IO.Path.GetFileName(sFile)

            ' Concatenamos la ruta de la carpeta al nombre del archivo.
            '
            sFile = IO.Path.Combine(folder, sFile)

            ' Si existe el archivo lo eliminamos.
            '
            If (File.Exists(sFile)) Then
                IO.File.Delete(sFile)
            End If

            ' GERENANDO EL ARCHIVO 
            Using f As New IO.StreamWriter(sFile, True)

                ' AGREGANDO LAS COLUMNAS 
                Dim col As String = ""
                ' AGREGANDO LAS FILAS 
                Dim row As String = ""
                Dim i As Integer = 0
                For Each r As DataGridViewRow In DataGridView2.Rows
                    For Each c As DataGridViewColumn In DataGridView2.Columns
                        row = row & "'" & Convert.ToString(r.Cells(c.HeaderText).Value) & "' "
                    Next
                    If i < DataGridView2.Rows.Count - 1 Then row &= Environment.NewLine
                Next

                'AGREGANDO LA INFORMACION 
                f.WriteLine(row)
                MessageBox.Show("El archivo ha sido creado")
            End Using

        End Sub

    Private Sub btnguardar_Click(sender As Object, e As EventArgs) Handles btnguardar.Click

            Try
                ' Procedemos a crear el archivo de texto cuyo
                ' nombre será el que se haya especificado en
                ' el control TextBox.
                '
                CrearArchivoTexto(TextBox1.Text)

            Catch ex As Exception
                ' Se ha producido un error
                MessageBox.Show(ex.Message)

            End Try
        End Sub


    Este es el link donde lo encontre por si quieren verlo ustedes mismos. https://social.msdn.microsoft.com/Forums/es-ES/448957da-cbc6-455e-a75e-1d3e3ac06733/exportar-datagridview-a-archivo-de-texto?forum=vbes

    viernes, 10 de noviembre de 2017 17:46
  • Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    	Using sfd As New SaveFileDialog
    		If sfd.ShowDialog() = DialogResult.OK Then
    			Dim Text = New System.Text.StringBuilder()
    
    			'Header text
    			Text.AppendLine(String.Join(", ", DataGridView1.Columns.Cast(Of DataGridViewColumn).
    				Select(Function(h) h.HeaderText)))
    			'Rows
    			For Each Row As DataGridViewRow In DataGridView1.Rows
    				If Not Row.IsNewRow Then Text.AppendLine(String.Join(", ", Row.Cells.
    					Cast(Of DataGridViewCell).Select(Function(c) Convert.ToString(c.Value))))
    			Next
    			'Save file
    			System.IO.File.WriteAllText(sfd.FileName, Text.ToString)
    		End If
    	End Using
    
    End Sub

    viernes, 10 de noviembre de 2017 19:12
  • Muchas gracias amigo.
    viernes, 10 de noviembre de 2017 19:23
  • Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    	Using sfd As New SaveFileDialog
    		If sfd.ShowDialog() = DialogResult.OK Then
    			Dim Text = New System.Text.StringBuilder()
    
    			'Header text
    			Text.AppendLine(String.Join(", ", DataGridView1.Columns.Cast(Of DataGridViewColumn).
    				Select(Function(h) h.HeaderText)))
    			'Rows
    			For Each Row As DataGridViewRow In DataGridView1.Rows
    				If Not Row.IsNewRow Then Text.AppendLine(String.Join(", ", Row.Cells.
    					Cast(Of DataGridViewCell).Select(Function(c) Convert.ToString(c.Value))))
    			Next
    			'Save file
    			System.IO.File.WriteAllText(sfd.FileName, Text.ToString)
    		End If
    	End Using
    
    End Sub

    Amigo si me sirvio y demasiado, solo que no me lo crea un archivo txt, si no es otro formato.
    • Propuesto como respuesta Pablo Rubio jueves, 16 de noviembre de 2017 21:56
    • Marcado como respuesta Pablo Rubio jueves, 16 de noviembre de 2017 21:56
    lunes, 13 de noviembre de 2017 15:09
  • Si no estas seguro que la propiedad FileName, de la instancia de la clase SaveFileDialog, contiene la extensión 'txt', puedes utilizar la propiedad DefaultExt, por ejemplo:

    Using sfd As New SaveFileDialog
    	sfd.DefaultExt = "txt"
    	sfd.Filter = "Text files (*.txt)|*.txt"
    	If sfd.ShowDialog() = DialogResult.OK Then
    		'...
    	End If
    End Using


    lunes, 13 de noviembre de 2017 17:38