摘要
GridView 汇出 Excel 及 Word 文件是蛮常使用的需求,此篇文章将扩展 GridView 控件提供汇出 Excel 及 Word 文件的方法。一般在 GridView 汇出的常见下列问题也会在此一并被解决。
GridView 汇出的常见问题:
问题1. GridView 使用 RenderControl 方法产生的错误。
问题2. GridView 分页的问题。
问题3. 汇出文件名称产生乱码的问题。
问题4. 汇出内容产生乱码的问题。

解决 GridView 汇出问题
我们先针对 GridView 汇出的问题,逐一处理解决

问题1. GridView 使用 RenderControl 方法产生的错误。
此问题参考上篇「使用 BasePage 来解决 GridView 执行 RenderControl 产生的错误」来解决。
 
问题2. GridView 分页的问题。
在执行汇出时,若 GridView 有使用分页(AllowPaging=True),则采下列步骤处理。
Step1.取消分页,即设定 GridView.AllowPaging=False。
Step2.GridView 执行 DataBind,使其重新系结所有数据,再使用 RenderCotnrol 输出 HTML 程序代码。
Step3.还原分页,即设定 GridView.AllowPaging=True。

问题3. 汇出文件名称产生乱码的问题。
针对此问题,只需将文件名称经 UrlEncode 编码,即可解决中文文件名的问题。
HttpUtility.UrlEncode(FileName, Encoding)
 
问题4. 汇出内容产生乱码的问题。
使用 Response 输出 <meta http-equiv='Content-Type'; content='text/html';charset='utf-8'> 来解决内容乱码的问。
 
扩展 GridView 控件
我们继承 GridView 命名为 TBGridView,其中新增 Export、ExportExcel、ExportWord 等汇出方法。

 1扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System
 2扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.Collections.Generic
 3扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.ComponentModel
 4扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.Text
 5扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.Web
 6扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.Web.UI
 7扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.Web.UI.WebControls
 8扩展 GridView 控件 - 支持 Excel 及 Word 汇出Imports System.Drawing
 9扩展 GridView 控件 - 支持 Excel 及 Word 汇出
10End Namespace

测试程序
在页面放置一个 GridView 控件系结数据并设定分页,另外放置二个按钮分别做「汇出 Excel 文件」及「汇出 Word 文件」的动作。

扩展 GridView 控件 - 支持 Excel 及 Word 汇出

汇出按钮撰写的程序代码如下

1End Sub

汇出 Excel 文件的结果如下所示
扩展 GridView 控件 - 支持 Excel 及 Word 汇出

汇出 Word 文件的结果如下所示
扩展 GridView 控件 - 支持 Excel 及 Word 汇出

相关文章: