Aqui hay un código que sirve para exportar datos de un datagridview a excel, espero te sirva.... saludos
Imports System.IO
Function Exportar()
Dim strStreamW As Stream
Dim strStreamWriter As StreamWriter
Dim Filas = frm_principal.Grid.Rows.Count
Dim Columnas = frm_principal.Grid.Columns.Count
Dim Archivo As String = Application.StartupPath & "\Centros.csv"
Dim Linea
Dim f, c
File.Delete(Archivo)
strStreamW = File.OpenWrite(Archivo)
strStreamWriter = New StreamWriter(strStreamW, System.Text.Encoding.UTF8)
'CABECERA
For c = 0 To Columnas - 1
Linea = Linea & frm_principal.Grid.Columns(c).Name & ";"
Next
Linea = Mid(Linea, 1, Linea.ToString.Length - 1)
strStreamWriter.WriteLine(Linea)
Linea = Nothing
'FILAS
For f = 0 To Filas - 1
For c = 0 To Columnas - 1
Linea = Linea & frm_principal.Grid.Item(c, f).Value & ";"
'MsgBox(Grid.Item(c, f).Value)
Next
Linea = Mid(Linea, 1, Linea.ToString.Length - 1)
strStreamWriter.WriteLine(Linea)
Linea = Nothing
Next
strStreamWriter.Close()
Try
Process.Start(Archivo) 'Ejecuta el archivo creado
Catch Ex As Exception
MsgBox(Ex.Message, MsgBoxStyle.Critical, Ex.Source)
End Try
End Function