問題
DataGrid裡有樣板時匯出Excel時寫法
背景:匯出EXCEL之前已經有寫過一篇
問題:當GridView裡加入樣板,而樣板裡加入一個TextBox控制項,發現在匯出Excel的時候,整個aspx都被寫入Excel,一整個傻眼,
解決方法
改寫如下
Dim file_name As String = DateTime.Now.ToString("yyyyMMddHHmmss") & ".xls" Dim myTextWriter As New System.IO.StringWriter '寫入標題 myTextWriter.WriteLine("姓名" & vbTab &"電話"&"vbTab&"備註") '以迴圈方式讀取DataGrid的值 For i As Integer = 0 To dgData.Items.Count – 1 myTextWriter.WriteLine(dgData.Items(i).Cells(2).Text & vbTab _ & dgData.Items(i).Cells(2).Text.Replace(" ", "") & vbTab _ & CType(dgData.Items(i).FindControl("txtContract_Content"), TextBox).Text) Next myTextWriter.Close() Response.AddHeader("Content-Disposition", "attachment; filename=test.xls") Response.ContentType = "application/ms-excel" Response.ContentEncoding = System.Text.Encoding.GetEncoding("big5") Response.Write(myTextWriter) Response.End()怪了!還是一樣不能解決,明明用StringWriter是以string的方式組資料!!
結果,問題出於CType(dgData.Items(i).FindControl("txtContract_Content"), TextBox).Text雖然抓到了控制項,但....
少了.ToString()??
改成CType(dgData.Items(i).FindControl("txtContract_Content"), TextBox).Text.ToString()就好了!!
這.....太扯了~
沒有留言:
張貼留言