摘要:[VB] 使用GridView 匯出成 Excel 方法
前言
有時後使用者會要求將GridView撈出來的資料能夠匯出Excel方變作業,
我們可以使用以下簡單的方法處理。
使用方法:
Step 1
將.aspx 頁面的 <% Page .....%> 修改增加以下屬性 AutoEventWireup="true" EnableEventValidation="false"
如:
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="GridToExcel.aspx.vb" Inherits="GridToExcel" EnableEventValidation="false" %>
Step 2
在要轉換的頁面下加入以下程式碼即可
'清單列印
Private Sub PrintExcel()
Response.Clear()
Response.AddHeader("content-disposition", "attachment;filename=" & HttpUtility.UrlEncode("檔案名稱", UTF8Encoding.UTF8) & ".xls")
Response.ContentType = "application/vnd.xls"
Dim sw As New System.IO.StringWriter
Dim htw As New System.Web.UI.HtmlTextWriter(sw)
'顯示列印資料
grdExcel.Visible = True
'關閉分頁排序
grdExcel.AllowPaging = False
grdExcel.AllowSorting = False
'查詢需列印之資料
searchPrint()
'交付選擇之資料
grdExcel.RenderControl(htw)
'設定編碼為UTF-8
Response.ContentEncoding = Encoding.GetEncoding("utf-8")
'丟出完成之資料
Response.Write(sw.ToString())
Response.End()
'開啟分頁排序
grdExcel.AllowPaging = True
grdExcel.AllowSorting = True
'關閉列印資料
grdExcel.Visible = False
grdExcel.DataBind()
End Sub
'防止 runat=server錯誤使用
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
'處理'GridView' 的控制項 'GridView' 必須置於有 runat=server 的表單標記之中
End Sub
'列印GridView資料載入
Private Sub searchPrint()
Dim ds As New DataSet
ds = GetData()
grdExcel.DataSource = ds
grdExcel.DataBind()
End Sub
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)