온라인 튜토리얼을 읽었으며 뭔가 누락 된 것 같습니다. 형식을 텍스트로 설정하여 주요 0 표시를 열에 표시하려고합니다.텍스트 형식의 행을 사용하여 Gridview를 Excel로 내 보냅니다.
의견을 보내 주시면 감사하겠습니다.
''' <summary>
''' This is required for the grid view to export properly
''' </summary>
''' <param name="control"></param>
''' <remarks></remarks>
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As System.Web.UI.Control)
End Sub
Protected Overrides Sub OnInitComplete(ByVal e As System.EventArgs)
Dim List As System.Web.UI.WebControls.GridView = CType(Page.FindControl("List"), System.Web.UI.WebControls.GridView)
AddHandler List.RowDataBound, AddressOf RowDataBound
List.DataSource = myList
List.DataBind()
Response.Clear()
Response.ContentType = "application/vnd.ms-excel"
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=ExportList.xls")
Response.Write("<style> .text {mso-number-format:\@; } </style>")
Using strwriter As New System.IO.StringWriter
Using htmlwriter As New HtmlTextWriter(strwriter)
List.RenderControl(htmlwriter)
HttpContext.Current.Response.Write(strwriter.ToString)
HttpContext.Current.ApplicationInstance.CompleteRequest()
End Using
End Using
End Sub
Protected Sub RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(0).Attributes.Add("class", "text")
Dim dtview As System.Data.DataRowView
Dim dt As DateTime
Dim intCounter As Integer
dtview = e.Row.DataItem
For intCounter = 0 To dtview.Row.ItemArray.Length - 1
If TypeOf dtview.Row.Item(intCounter) Is System.DateTime Then
dt = dtview.Row.Item(intCounter)
e.Row.Cells(intCounter).Text = dt.ToLongDateString
End If
Next
End If
End Sub
링크가 작동하지 않습니다. – rossisdead
링크가 수정되었습니다 – LPL