SALVAR DGV EM CSV OU ABRIR O ARQUIVO CSV NA DGV

MOUSER 12/03/2014 10:56:21
#435895
Alguém sabe como salvar uma tabela apresentada na DGV em CSV (Separado por virgula) e como fazer o inverso, para reconhecer cada coluna, separada como o próprio nome diz pela virgula. Grato
TUNUSAT 12/03/2014 11:30:06
#435900
Mouser,


Montei um exemplo de CSV que está aqui no VBMania:


SAIDAS CSV, XML E XLSX
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=9129


Acho que só precisa adaptar a leitura da DataGridView (registro a registro) e gravar no formato CSV.

Dá uma olhada e veja o que acha, qualquer coisa me chama.


[][ô]s,
Tunusat.
CLEVERTON 12/03/2014 12:47:06
#435907
Resposta escolhida
PARA GRAVAR O ARQuivo via DataGridView

  
Dim CSV As System.IO.StreamWriter = New System.IO.StreamWriter([Ô]C:\\GridData.csv[Ô])
Dim i As Integer, x As Integer

Dim QtdColunas As Integer = dataGridView1.ColumnCount - 1

For i = 0 To QtdColunas

CSV.Write(DataGridView1.Columns(i).HeaderText)

If (i < QtdColunas) Then

CSV.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator)
End If


Next i

CSV.Write(CSV.NewLine)

Dim QtdRows As Integer = DataGridView1.Rows.Count - 1

For i = 0 To QtdRows

For x = 0 To QtdColunas

If (Not DataGridView1.Rows(i).Cells(x).Value Is Nothing) Then
CSV.Write(DataGridView1.Rows(i).Cells(x).Value.ToString())
End If

If (x < QtdColunas) Then
CSV.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator)
End If

Next x
CSV.Write(CSV.NewLine)
Next i

CSV.Close()
CLEVERTON 12/03/2014 12:53:57
#435908
PARA LER



Dim file As New System.IO.FileInfo([Ô]C:\\GridData.csv[Ô])
Dim dt As New DataTable

Using con As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & file.DirectoryName & [Ô];Extended Properties=[ô]text;HDR=Yes;FMT=Delimited(,)[ô];[Ô])

Using cmd As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand([Ô]SELECT * FROM [Ô] & file.Name, con)
con.Open()

Using da As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter(cmd)
da.Fill(dt)
End Using
End Using

con.Close()
End Using

If dt IsNot Nothing Then
Me.DataGridView1.DataSource = dt
End If
End Sub
Tópico encerrado , respostas não são mais permitidas