Exportar GridView de ASP para eXcel

Any

Power Member
Tenho o seguinte codigo:
PHP:
ublic Shared Sub Export(ByVal fileName As String, ByVal gv As GridView)
        HttpContext.Current.Response.Clear()
        HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", fileName))
        HttpContext.Current.Response.ContentType = "application/ms-excel"
        Dim sw As StringWriter = New StringWriter
        Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
        '  Create a form to contain the grid
        Dim table As Table = New Table
        table.GridLines = gv.GridLines
        '  add the header row to the table
        If (Not (gv.HeaderRow) Is Nothing) Then
            GridExport.PrepareControlForExport(gv.HeaderRow)
            table.Rows.Add(gv.HeaderRow)
        End If
        '  add each of the data rows to the table
        For Each row As GridViewRow In gv.Rows
            GridExport.PrepareControlForExport(row)
            table.Rows.Add(row)
        Next
        '  add the footer row to the table
        If (Not (gv.FooterRow) Is Nothing) Then
            GridExport.PrepareControlForExport(gv.FooterRow)
            table.Rows.Add(gv.FooterRow)
        End If
        '  render the table into the htmlwriter
        table.RenderControl(htw)
        '  render the htmlwriter into the response
        HttpContext.Current.Response.Write(sw.ToString)
        HttpContext.Current.Response.End()
    End Sub

o qual uso para me exportar uma gridview para excel, no entanto ao exportar uma coluna que contem dados do tipo "08/01" ou "08/02" quando chega ao excel aparece como "08-jan" ou seja ele formata como data...

Alguem me sabe dizer como posso resolver isto?

Obrigado desde ja!
 
o problema e q esses valores ja vem assim da BD!

edit: resolvi o problema no dataformatstring da gridview meter um ' antes do texto, ao menos o excel ja nao me detecta akilo como data...
 
Última edição:
Suponho que não irás fazer qualquer tipo de cálculo com esses valores.

Logo poderás fazer só uma formatação muito simples: Vai a Formatar Células -> Personalizado e escreve isto: dd/mm . Para o Excel continuará a ser uma data (como poderás ver se activares a célula em que introduziste a formatação), mas vai ficar visível como tu queres.
 
Back
Topo