将数据从DataGridView导出到Excel

将数据从DataGridView导出到Excel,并设置是否要导出隐藏的列 
  Public   Function ExportExcel(ByVal dgv As DataGridView, ByVal IsOnlyVisible As BooleanAs Boolean
    
Try
      
Dim n, i, j, row, col As Integer
      
Dim excel As Excel.Application = New Excel.Application()


      excel.Application.Workbooks.Add(
True)
      col 
= 1
      
'//记录列名
      For n = 0 To dgv.ColumnCount - 1
        
If IsOnlyVisible Then
          
If dgv.Columns(n).Visible Then
            excel.Cells(
1, col) = dgv.Columns(n).HeaderText
            col 
= col + 1
          
End If
        
Else
          excel.Cells(
1, n + 1= dgv.Columns(n).HeaderText
        
End If

      
Next
      
'//记录内容
      row = 2
      
' col = 1

      
For i = 0 To dgv.RowCount - 1
        col 
= 1
        
For j = 0 To dgv.ColumnCount - 1
          
'System.Windows.Forms.Application.DoEvents()
          If IsOnlyVisible Then
            
If dgv.Columns(j).Visible Then
              excel.Cells(i 
+ 2, col) = dgv.Rows(i).Cells(j).Value
              col 
= col + 1
            
End If
          
Else
            excel.Cells(i 
+ 2, j + 1= dgv.Rows(i).Cells(j).Value
          
End If
        
Next

      
Next
      excel.Visible 
= True
    
Catch ex As Exception
      
Throw ex
    
End Try
  
End Function

你可能感兴趣的:(datagridview)