Yo lleno un datagridview y luego exporto esto a excel solo que es visual estudio 2015
Solo lo dejo para que te des una idea espero te ayude
Public Sub Exportar_Excel(ByVal dgv As DataGridView, ByVal pth As String)
'esto es para exportar a excel el datagrid
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 DataGridView1.Columns.Count - 1
xlWS.cells(1, c + 1).value = DataGridView1.Columns(c).HeaderText
Next
'exportamos las cabeceras de columnas
For r As Integer = 0 To DataGridView1.RowCount - 1
For c As Integer = 0 To DataGridView1.Columns.Count - 1
xlWS.cells(r + 2, c + 1).value = DataGridView1.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
y en el boton exportar
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles btexportar.Click
'boton para exportar a excel
Dim save As New SaveFileDialog
save.Filter = "Archivo Excel | *.xlsx"
If save.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Exportar_Excel(Me.DataGridView1, save.FileName)
End If
End Sub