[VB] 使用GridView 匯出成 Excel 方法

摘要:[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

 

 

 


以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)