El requerimiento de reportear datos en Excel es bastante común (tan común como hacerlo en PDF casi). Tenemos dos maneras de hacerlo, usando Excel en el servidor para que nos genere los archivos o usar el mínimo formato que Excel entiende, ósea TDF. La ventaja de TDF es que lo entienden todos los Excel, la desventaja es que solo podremos generar archivos de solo texto, sin formatos avanzados o gráficos.

Para el laburo que tenía que hacer alcanzaba y sobraba con TDF y despues de googlear un poco encontre lo que necesitaba aca.

Ahi hay una explicacion bastante extensa del tema, pero si lo que quieren es generar el archivo sin muchas vueltas el codigo es el siguiente:

Private Sub Page_Load(..) Handles MyBase.Load

     dt = New DataTable()

    dt = loadDataTable

    Response.ContentType = “application/ms-excel”
Response.AddHeader(“Content-Disposition”,“inline;filename=test.xls”)
Response.Write(ConvertDtToTDF(dt))
End Sub

 

‘Esta funcion convierte una tabla a TDF

Private Function ConvertDtToTDF(ByVal dt As DataTable) As String

    Dim dr As DataRow, ary() As Object, i As Integer

    Dim iCol As Integer

    For iCol = 0 To dt.Columns.Count – 1

        Response.Write(dt.Columns(iCol).ToString & vbTab)

    Next

    Response.Write(vbCrLf)

 

    ‘Genero las filas

    For Each dr In dt.Rows

        ary = dr.ItemArray

        For i = 0 To UBound(ary)

            Response.Write(ary(i).ToString & vbTab)

        Next

        Response.Write(vbCrLf)

    Next

End Function

 

 

¿ Herencia, Interfaces, Polimorfismo?… naaa.. nada de eso… segun un superior que tuve… el logra todo eso con un Copy-Paste :( :(