none
Salvar Arquivos Selecionados no Grid RRS feed

  • Pergunta

  • Ola pessoal boa tarde Consegui os codigos para enviar todos os dados do Grid p/ Excel Mas preciso saber tbem como enviar somente os dados selecionados será que alguem pode me ajudar?
    Antonio Carlos acefeli@hotmail.com
    segunda-feira, 21 de novembro de 2011 15:33

Respostas

  • Fala acefel..

    Você terá que alterar este trecho de código

     Dim dr1 As DataRow
            For i As Integer = 0 To DataGridView.RowCount - 1
                dr1 = dset.Tables(0).NewRow
                For j As Integer = 0 To DataGridView.Columns.Count - 1
                    dr1(j) = DataGridView.Rows(i).Cells(j).Value
                Next
                dset.Tables(0).Rows.Add(dr1)
            Next
    
    


    para 

    Dim dr1 As DataRow
    For i As Integer = 0 To DataGridView.RowCount - 1
    	Dim gridRow As GridViewRow = DataGridView.Rows(i)
    	Dim cb As CheckBox = CType(gridRow.FindControl("nome do checkBox"), CheckBox)
    	If cb.Checked Then
    		 dr1 = dset.Tables(0).NewRow
    		For j As Integer = 0 To DataGridView.Columns.Count - 1
    			dr1(j) = DataGridView.Rows(i).Cells(j).Value
    		Next
    		dset.Tables(0).Rows.Add(dr1)
    	End If
    Next
    

    O que eu fiz foi o seguinte, dentro da linha do grid, eu procurei o controle checkbox e verifiquei se o mesmo estava selecionado..
    Entendeu?



    Francisco Gonçalves
    Blog: franciscogoncalves.wordpress.com
    terça-feira, 22 de novembro de 2011 10:41

Todas as Respostas

  • Fala acefel..

    Poste aqui o fonte que você esta utilizando..


    Francisco Gonçalves
    Blog: franciscogoncalves.wordpress.com
    segunda-feira, 21 de novembro de 2011 15:39
  • ai vai colega

    Sub excel()
            If ((DataGridView.Columns.Count = 0) Or (DataGridView.Rows.Count = 0)) Then
                Exit Sub
            End If
    
            'Creating dataset to export
            Dim dset As New DataSet
            'add table to dataset
            dset.Tables.Add()
            'add column to that table
            For i As Integer = 0 To DataGridView.ColumnCount - 1
                dset.Tables(0).Columns.Add(DataGridView.Columns(i).HeaderText)
            Next
            'add rows to the table
            Dim dr1 As DataRow
            For i As Integer = 0 To DataGridView.RowCount - 1
                dr1 = dset.Tables(0).NewRow
                For j As Integer = 0 To DataGridView.Columns.Count - 1
                    dr1(j) = DataGridView.Rows(i).Cells(j).Value
                Next
                dset.Tables(0).Rows.Add(dr1)
            Next
    
            Dim excel As New Microsoft.Office.Interop.Excel.ApplicationClass
            Dim wBook As Microsoft.Office.Interop.Excel.Workbook
            Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet
    
            wBook = excel.Workbooks.Add()
            wSheet = wBook.ActiveSheet()
    
            Dim dt As System.Data.DataTable = dset.Tables(0)
            Dim dc As System.Data.DataColumn
            Dim dr As System.Data.DataRow
            Dim colIndex As Integer = 0
            Dim rowIndex As Integer = 0
    
            For Each dc In dt.Columns
                colIndex = colIndex + 1
                excel.Cells(1, colIndex) = dc.ColumnName
            Next
    
            For Each dr In dt.Rows
                rowIndex = rowIndex + 1
                colIndex = 0
                For Each dc In dt.Columns
                    colIndex = colIndex + 1
                    excel.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
    
                Next
            Next
    
            wSheet.Columns.AutoFit()
            Dim strFileName As String = "C:\teste\escala.xls"
            Dim blnFileOpen As Boolean = False
            Try
                Dim fileTemp As System.IO.FileStream = System.IO.File.OpenWrite(strFileName)
                fileTemp.Close()
            Catch ex As Exception
                blnFileOpen = False
            End Try
    
            If System.IO.File.Exists(strFileName) Then
                System.IO.File.Delete(strFileName)
            End If
    
            wBook.SaveAs(strFileName)
            excel.Workbooks.Open(strFileName)
            excel.Visible = True
        End Sub
    

    lembre-se preciso que envie p/ o excel somente oque for selecionado no Grid e não o grid todo


    Antonio Carlos acefeli@hotmail.com
    segunda-feira, 21 de novembro de 2011 21:14
  • Fala acefel..

    Você terá que alterar este trecho de código

     Dim dr1 As DataRow
            For i As Integer = 0 To DataGridView.RowCount - 1
                dr1 = dset.Tables(0).NewRow
                For j As Integer = 0 To DataGridView.Columns.Count - 1
                    dr1(j) = DataGridView.Rows(i).Cells(j).Value
                Next
                dset.Tables(0).Rows.Add(dr1)
            Next
    
    


    para 

    Dim dr1 As DataRow
    For i As Integer = 0 To DataGridView.RowCount - 1
    	Dim gridRow As GridViewRow = DataGridView.Rows(i)
    	Dim cb As CheckBox = CType(gridRow.FindControl("nome do checkBox"), CheckBox)
    	If cb.Checked Then
    		 dr1 = dset.Tables(0).NewRow
    		For j As Integer = 0 To DataGridView.Columns.Count - 1
    			dr1(j) = DataGridView.Rows(i).Cells(j).Value
    		Next
    		dset.Tables(0).Rows.Add(dr1)
    	End If
    Next
    

    O que eu fiz foi o seguinte, dentro da linha do grid, eu procurei o controle checkbox e verifiquei se o mesmo estava selecionado..
    Entendeu?



    Francisco Gonçalves
    Blog: franciscogoncalves.wordpress.com
    terça-feira, 22 de novembro de 2011 10:41
  • Ola camarada Francisco

    esta acusando um erro informando que

    Dim cb As CheckBox = CType(gridRow.FindControl("nome do checkBox"), CheckBox)

    FindControl nao é membro de System.Windows.Form.DataGridViewRow

    e onde esta em vermelho preciso alterar?


    Antonio Carlos acefeli@hotmail.com
    terça-feira, 22 de novembro de 2011 22:08
  • precisa sim...

    vc precisa colocar o nome do controle  checkbox que esta dentro do seu grid view.

    se vc olhar o codigo html do grid, pode ser que vc identifique. naum identificar... post aqui o html para eu poder te ajudar


    Francisco Gonçalves
    Blog: franciscogoncalves.wordpress.com
    terça-feira, 22 de novembro de 2011 22:33
  • colega estou apreendendo visual basic
    Antonio Carlos acefeli@hotmail.com
    quarta-feira, 23 de novembro de 2011 01:13