Exportar consulta SQL a un archivo Excel en ASP.NET



El otro día me tocó descargar el contenido de un gridView de WebForms en formato Excel desde un sitio web.


Encontré en google justo lo que necesitaba, convertía el formato html del gridView directamente en Excel. Lo malo es que si el gridView tiene paginación solo se exportan al Excel aquellas filas que saldrían en la página actual.
Al final encontré como exportar directamente el contenido desde un SqlDataReader, lo que es mucho más útil. Primero realizamos la consulta a la B.D. con los mismo registros que se cargarían en el gridView, independientemente de si tiene paginación  o no y además podemos modificar el contenido para crear el archivo Excel.


He modificado el código para que se puedan seleccionar los campos deseados de  la consulta que queremos que aparezcan en el Excel. El código está en Visual Basic, pero si sabes C# es fácil entenderlo :)
Espero que sea de utilidad, un saludo.