Hola esta exportación la he echo desde un datagridview a un txt. el código es es sig. Supongo que el procedimiento debe ser parecido para realizarlo en excel.
1. Option Explicit On
2. Option Strict On
3.
4. ' para usar la clase StreamWriter
5. Imports System
6. Imports System.IO
7.
8. Public Class Form1
9.
10. ' botón para recorrer el datagridView y guardarlo en el archivo
11. Private Sub Button1_Click( _
12. ByVal sender As System.Object, _
13. ByVal e As System.EventArgs) _
14. Handles Button1.Click
15.
16. Const DELIMITADOR As String = ";"
17.
18. ' ruta del fichero de texto
19. Const ARCHIVO_CSV As String = "c:\archivo.txt"
20.
21. Try
22. 'Nuevo objeto StreamWriter, para acceder al fichero y poder guardar las líneas
23. Using archivo As StreamWriter = New StreamWriter(ARCHIVO_CSV)
24.
25. ' variable para almacenar la línea actual del dataview
26. Dim linea As String = String.Empty
27.
28. With DataGridView1
29. ' Recorrer las filas del dataGridView
30. For fila As Integer = 0 To .RowCount - 1
31. ' vaciar la línea
32. linea = String.Empty
33.
34. ' Recorrer la cantidad de columnas que contiene el dataGridView
35. For col As Integer = 0 To .Columns.Count - 1
36. ' Almacenar el valor de toda la fila , y cada campo separado por el delimitador
37. linea = linea & .Item(col, fila).Value.ToString & DELIMITADOR
38. Next
39.
40. ' Escribir una línea con el método WriteLine
41. With archivo
42. ' eliminar el último caracter ";" de la cadena
43. linea = linea.Remove(linea.Length - 1).ToString
44. ' escribir la fila
45. .WriteLine(linea.ToString)
46. End With
47. Next
48. End With
49. End Using
50.
51. ' Abrir con Process.Start el archivo de texto
52. Process.Start(ARCHIVO_CSV)
53.
54. 'error
55. Catch ex As Exception
56. MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
57. End Try
58. End Sub
59.
60. Private Sub Form1_Load( _
61. ByVal sender As System.Object, _
62. ByVal e As System.EventArgs) Handles MyBase.Load
63.
64. Button1.Text = "Guardar en csv"
65.
66. With DataGridView1
67. ' agregar cuatro columnas al control DataGridView
68. For iHeader As Integer = 0 To 3
69. .Columns.Add("Columna " & iHeader.ToString, _
70. "Columna " & iHeader.ToString)
71. Next
72.
73. ' Indicar a la propiedad RowCount la cantidad de filas a establecer
74. .RowCount = 20
75.
76. ' Recorrer toda las filas
77. For fila As Integer = 0 To .Rows.Count - 1
78. ' recorrer todas las columnas
79. For col As Integer = 0 To .Columns.Count - 1
80. ' Añadir algunos datos en cada celda
81. .Item(col, fila).Value = "Fila: " & fila & " Columna " & col
82. Next
83. Next
84. End With
85. End Sub
86. End Class
Espero te funcione, cualquier duda, estamos a la orden.
SALUDOS