Usuário com melhor resposta
Salvar Como e Abrir DataSet ou gridview

Pergunta
-
Eu tenho um datagridview que salva os dados em um dataset, porem gostaria de adicionar um botão de salvar como e outro para abrir meu datagridview. O meu programa só armazena dados enquanto estar aberto, serve apenas pra fazer alguns cálculos, mas gostaria de dar a opção pro usuário de salvar os dados que ele digitou no datagrid para usar posteriormente caso ele queria, tipo o salvar como e abrir do word, excell, power point, etc.... Pensei em exportar pra um .txt ou tipo criar um novo dataset. Alguém pode me ajudar?
Respostas
-
Boa tarde AgnaldoMatos,
Obrigado por sua participação no Fórum MSDN.
Você pode tentar adaptar e utilizar o seguinte código:
Public Class Form1 Dim ThisFilename As String = Application.StartupPath & "\MyData.dat" Private Sub butSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butSave.Click SaveGridData(DataGridView1, ThisFilename) End Sub Private Sub butAbre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butLoad.Click LoadGridData(DataGridView1, ThisFilename) End Sub Private Sub SaveGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) ThisGrid.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText ThisGrid.SelectAll() IO.File.WriteAllText(Filename, ThisGrid.GetClipboardContent().GetText.TrimEnd) ThisGrid.ClearSelection() End Sub Private Sub LoadGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) ThisGrid.Rows.Clear() For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine) ThisGrid.Rows.Add(Split(THisLine, " ")) Next End Sub End Class
Atenciosamente,Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Robson William SilvaModerator terça-feira, 26 de julho de 2016 12:32
-
Eu achei um método que exporta e importa o gridview para excell, testei aqui e funcionou, irei deixar esse método.
Obrigado pela ajuda.
e caso alguém precise o código para exportar e importar para excell é esse:
'Importa Gridview momentos Private Sub MomentosToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles MomentosToolStripMenuItem1.Click OpenFileDialog1.Filter = "Arquivos Excel | *.xlsx" OpenFileDialog1.Title = "Selecione o Arquivo" OpenFileDialog1.Multiselect = False OpenFileDialog1.FileName = "" If OpenFileDialog1.ShowDialog(Me) = DialogResult.OK Then End If 'Faz conexão com a planilha, ler os dados e joga no gridview Try Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;" & ("Data Source=" & (OpenFileDialog1.FileName & ";Extended Properties=""Excel 12.0;Xml;HDR=YES;IMEX=2"";"))) Dim cnConex As New OleDbConnection(stConexion) Dim Cmd As New OleDbCommand("Select * From [Plan1$]") Dim Ds As New DataSet Dim Da As New OleDbDataAdapter Dim Dt As New DataTable cnConex.Open() Cmd.Connection = cnConex Da.SelectCommand = Cmd Da.Fill(Ds) Dt = Ds.Tables(0) MomentosDataGridView.DataSource = Dt.DefaultView 'Carrega o gridview com o arquivo selecionado Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error") End Try End Sub
'Comando para exportar gridview momentos Public Sub Exportar_momentos(ByVal dgv As DataGridView, ByVal pth As String) Dim xlApp As Object = CreateObject("Excel.Application") 'crear una nueva hoja de calculo Dim xlWB As Object = xlApp.WorkBooks.add Dim xlWS As Object = xlWB.WorkSheets(1) 'exportamos los caracteres de las columnas For c As Integer = 0 To MomentosDataGridView.Columns.Count - 1 xlWS.cells(1, c + 1).value = MomentosDataGridView.Columns(c).HeaderText Next 'exportamos las cabeceras de columnas For r As Integer = 0 To MomentosDataGridView.RowCount - 1 For c As Integer = 0 To MomentosDataGridView.Columns.Count - 1 xlWS.cells(r + 2, c + 1).value = MomentosDataGridView.Item(c, r).Value Next Next 'guardamos la hoja de calculo en la ruta especificada xlWB.saveas(pth) xlWS = Nothing xlWB = Nothing xlApp.quit() xlApp = Nothing End Sub 'Botão salvar gridview momentos Private Sub MomentosToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MomentosToolStripMenuItem.Click Savedata.Filter = "Arquivos Excel | *.xlsx" Savedata.Title = "Escolha o nome do Arquivo" Savedata.FileName = "" If Savedata.ShowDialog(Me) = DialogResult.OK Then Exportar_momentos(Me.MomentosDataGridView, Savedata.FileName) End If End Sub
- Marcado como Resposta AgnaldoMatos sábado, 30 de julho de 2016 16:29
Todas as Respostas
-
Boa tarde AgnaldoMatos,
Obrigado por sua participação no Fórum MSDN.
Você pode tentar adaptar e utilizar o seguinte código:
Public Class Form1 Dim ThisFilename As String = Application.StartupPath & "\MyData.dat" Private Sub butSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butSave.Click SaveGridData(DataGridView1, ThisFilename) End Sub Private Sub butAbre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butLoad.Click LoadGridData(DataGridView1, ThisFilename) End Sub Private Sub SaveGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) ThisGrid.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText ThisGrid.SelectAll() IO.File.WriteAllText(Filename, ThisGrid.GetClipboardContent().GetText.TrimEnd) ThisGrid.ClearSelection() End Sub Private Sub LoadGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) ThisGrid.Rows.Clear() For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine) ThisGrid.Rows.Add(Split(THisLine, " ")) Next End Sub End Class
Atenciosamente,Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Robson William SilvaModerator terça-feira, 26 de julho de 2016 12:32
-
-
-
Bom dia AgnaldoMatos,
Foi apresentado algum erro? O que exatamente não funcionou?
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Eu achei um método que exporta e importa o gridview para excell, testei aqui e funcionou, irei deixar esse método.
Obrigado pela ajuda.
e caso alguém precise o código para exportar e importar para excell é esse:
'Importa Gridview momentos Private Sub MomentosToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles MomentosToolStripMenuItem1.Click OpenFileDialog1.Filter = "Arquivos Excel | *.xlsx" OpenFileDialog1.Title = "Selecione o Arquivo" OpenFileDialog1.Multiselect = False OpenFileDialog1.FileName = "" If OpenFileDialog1.ShowDialog(Me) = DialogResult.OK Then End If 'Faz conexão com a planilha, ler os dados e joga no gridview Try Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;" & ("Data Source=" & (OpenFileDialog1.FileName & ";Extended Properties=""Excel 12.0;Xml;HDR=YES;IMEX=2"";"))) Dim cnConex As New OleDbConnection(stConexion) Dim Cmd As New OleDbCommand("Select * From [Plan1$]") Dim Ds As New DataSet Dim Da As New OleDbDataAdapter Dim Dt As New DataTable cnConex.Open() Cmd.Connection = cnConex Da.SelectCommand = Cmd Da.Fill(Ds) Dt = Ds.Tables(0) MomentosDataGridView.DataSource = Dt.DefaultView 'Carrega o gridview com o arquivo selecionado Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error") End Try End Sub
'Comando para exportar gridview momentos Public Sub Exportar_momentos(ByVal dgv As DataGridView, ByVal pth As String) Dim xlApp As Object = CreateObject("Excel.Application") 'crear una nueva hoja de calculo Dim xlWB As Object = xlApp.WorkBooks.add Dim xlWS As Object = xlWB.WorkSheets(1) 'exportamos los caracteres de las columnas For c As Integer = 0 To MomentosDataGridView.Columns.Count - 1 xlWS.cells(1, c + 1).value = MomentosDataGridView.Columns(c).HeaderText Next 'exportamos las cabeceras de columnas For r As Integer = 0 To MomentosDataGridView.RowCount - 1 For c As Integer = 0 To MomentosDataGridView.Columns.Count - 1 xlWS.cells(r + 2, c + 1).value = MomentosDataGridView.Item(c, r).Value Next Next 'guardamos la hoja de calculo en la ruta especificada xlWB.saveas(pth) xlWS = Nothing xlWB = Nothing xlApp.quit() xlApp = Nothing End Sub 'Botão salvar gridview momentos Private Sub MomentosToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MomentosToolStripMenuItem.Click Savedata.Filter = "Arquivos Excel | *.xlsx" Savedata.Title = "Escolha o nome do Arquivo" Savedata.FileName = "" If Savedata.ShowDialog(Me) = DialogResult.OK Then Exportar_momentos(Me.MomentosDataGridView, Savedata.FileName) End If End Sub
- Marcado como Resposta AgnaldoMatos sábado, 30 de julho de 2016 16:29