使用服务器端控件(GridView)进行数据导出(Excel和Word)

1.我使用三层做的,在DAL和BLL中引用System.Web;命名空间

2.写三层方法

#region 额外
/// <summary>
/// 导出Excel和导出Word的方法
/// </summary>
/// <param name="gv">要导出的数据</param>
/// <param name="fileType">导出数据的文档类型</param>
/// <param name="fileName">导出数据的文档扩展名</param>
public void Export(GridView gv, bool fileType, string fileName)
{
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.Buffer = true;
response.Charset = "GB2312";
response.Write("<meta http-equiv=Content-Type context=‘text/html‘;>");
response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8).ToString());//fileName.xls
response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
if (fileType == true)
{
response.ContentType = "application/excel";//输出类型为excel
}
else
{
response.ContentType = "application/word";//输出类型为excel
}
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
response.Output.Write(sw.ToString());
response.Flush();
response.End();
}
#endregion

3.在UI层中进行调用

TUserBLL bll = new TUserBLL();
TUserDAL dal = new TUserDAL();
protected void Page_Load(object sender, EventArgs e)
{

}
public override void VerifyRenderingInServerForm(Control control)
{

//这个重写方法是必须的,不用实现即可
}
protected void btnExcel_Click(object sender, EventArgs e)
{
bll.Export(gvExcelAndWord, true, "用户信息表.xls");
}

protected void btnWord_Click(object sender, EventArgs e)
{
bll.Export(gvExcelAndWord, false, "haha.doc");
}

4.特殊说明:在UI层中调用的时候必须做两个操作

4.1在.cs后台页面写上这个重写方法

public override void VerifyRenderingInServerForm(Control control)
{

//这个重写方法是必须的,不用实现即可
}

4.2在前台页面修改为不需要执行事件验证 EnableEventValidation="false" 或者修改配置文件<pages enableEventValidation="false"></pages>

时间: 2024-08-30 11:55:58

使用服务器端控件(GridView)进行数据导出(Excel和Word)的相关文章

机房收费系统之vb中的MSFlexGrid控件中的数据导出为Excel的步骤

MSFlexGrid控件中的数据导出为Excel表格的方法有很多,我觉得它们都大同小异,总起来说就是vb先调用Excel,然后再将数据导入进去.在数据导出的过程中,我的收获如下,下面是我把MSFlexGrid控件的数据导出到Excel中的步骤. 1 首先确保 在工程中引用Microsoft Excel 14.0 Object Library   和  Microsoft ActiveX Data Objects 2.6 Libray 代码部分, <span style="font-size

(浅谈).Net控件GridView绑定数据

前台GridView属性设置 <td> <asp:GridView ID="GridView" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox runat="server" /> </ItemT

数据导出excel和word文件

程序中可以将一些信息导出,以便用户下载使用,这里将简单的做一下导出表格,用car表做例子,直接用Linq连接到数据库 car表: 方法一: 创建一个页面,放上一个按钮,在按钮中写事件,按钮id就叫做button1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; usin

c#服务器端控件confirm

1>服务器端控件删除的数据的时候,可以调用js的confirm防止误操作,但是默认的样式实在是让人难以接受,怎么调用自定义的提示框而且同步回发到服务器端, 服务器端的控件的用linkbutton,代码如下 <asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" OnClientClick="return

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

在ASP.NET 的服务器端控件中有三种关于 ID 的属性

在ASP.NET 的服务器端控件中有三种关于 ID 的属性,即 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性.方法和时间进行编程访问.(可写) ClientID 表示由服务器端生成的客户端控件的ID,"经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素".一般情况下与服务器端的 ID 相同,有时,不能为控件生成唯一的

ASP.NET服务器端控件(class0617)

ASP.Net服务端基本控件介绍 ASP.Net服务端控件是ASP.Net对HTML的封装,在C#代码中就可以用txt1.Text=‘abc’这种方式来修改input的值,ASP.Net会将服务端控件转成HTML代码输出给浏览器.服务端控件是ASP.Net非常吸引初学者.非常容易上手的东西,也是最被人诟病的东西.物尽其用,服务端控件在内网系统.互联网系统的后台部分等访问频率不高的地方用的还是很适合的. (互联网公司,产品型公司(OA)) 在服务端控件的标签中写的属性如果不是控件内置的属性就会被原

.net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器

1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.WebForm使用母版页进行登录时候的验证 //新建一个页面父类 public abstract class BasePage:Page { protected void Page_Load(object sender, EventArgs e) { //1.身份验证的方法 Session if (Se

ASP.NET--Web服务器端控件和Html控件

今天学习总结了一些相关概念和知识. 之前无论是做 单机的winform 还是 CS的winform 感觉,不到两年下来感觉还可以,虽然API有很多,但是还是比较熟悉基于WINDOWS消息机制的编程,但是现在网络硬件设施更新之快,BS 开发优势之大,不过需要的技术方面倒是得扩宽许多,JavaScript,CSS,Html都需要了解掌握,除webForm之外,对于现今主流的MVC更是需要学习. 概念: asp.net控件服务端控件  --> 响应服务端事件 HTML控件客户端控件   -- >