前台页面放一个GridView什么的就不说了,要注意的是在

<%@ Page Language="C#" AutoEventWireup="true" Codebehind="ReferPriceIndex.aspx.cs" EnableEventValidation="false"
Inherits="ZTE.Fol.Fund.UI.Web.InsideTrade.ReferPrice.ReferPriceIndex" %>

标签里面加EnableEventValidation属性

同时后台加上

        /// <summary>
/// 内容摘要:重写空的VerifyRenderingInServerForm方法,避免在导出Excel文件的时候出现
/// “……必须放在具有 runat=server 的窗体标记内”的异常
/// 另外说明:
/// 在asp.net2.0中,控件的校验严格了,
/// RenderControl代码只有走正常流程在render方法中它自己调用才能成功,
/// 在自己写的事件方法中调用就会出现这个错误。
/// </summary>
/// <param name="control">提交控件</param>
public override void VerifyRenderingInServerForm(Control control)
{
}// end VerifyRenderingInServerForm

这两个地方都加上,可以防止导出excel的时候导出整个页面

BeadRollListExportExcel.aspx 页面就是导出的页面了,页面代码:
 <asp:GridView ID="GridView1" BorderColor="Black" runat="server" AutoGenerateColumns="False"
Font-Size="12px" Width="530px" AllowSorting="True"
OnRowCreated="GridView1_RowCreated">
<Columns>
<asp:TemplateField HeaderText="序号" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<%#(((GridViewRow)Container).DataItemIndex + 1) %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="PrimarySchoolName" HeaderText="学校" />
<asp:BoundField DataField="TypeName" HeaderText="类别" />
<asp:BoundField DataField="Name" HeaderText="姓名" />
<asp:BoundField DataField="SexCode" HeaderText="性别" />
<asp:BoundField DataField="" HeaderText="备注" />
</Columns>
<HeaderStyle BackColor="Azure" Font-Size="12px" HorizontalAlign="Center" />
<RowStyle HorizontalAlign="Center" />
<PagerStyle HorizontalAlign="Center" />
</asp:GridView>

后台代码:

    protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetList();
Export("application/ms-excel", string.Format("{0}****.xls", DateTime.Now.ToString("yyyy-MM-dd")));
}
} public void GetList()
{
string studentType = Request.QueryString["studentType"].ToString();
string schoolCode = Request.QueryString["schoolCode"].ToString();
string district = Request.QueryString["district"].ToString();
string strWhere = " 1=1";
if (!string.IsNullOrEmpty(studentType))
{
strWhere += " and TypeCode='" + studentType + "'";
}
if (!string.IsNullOrEmpty(district))
{
strWhere += " and DistrictCode='" + district + "'";
}
if (!string.IsNullOrEmpty(schoolCode))
{
strWhere += " and PrimarySchoolCode ='" + schoolCode + "'";
}
DataTable dt = new BLL.ObjMethod().GetList("View_ExportExcelStudent", strWhere); GridView1.DataSource = dt;
GridView1.DataBind();
} /// <summary>
/// 定义导出Excel的函数
/// </summary>
/// <param name="FileType"></param>
/// <param name="FileName"></param>
private void Export(string FileType, string FileName)
{
for (int i = ; i < GridView1.Rows.Count; i++)
{
GridView1.Rows[i].Cells[].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlDecode(FileName, Encoding.UTF8).ToString());//HttpUtility.UrlDecode输出中文文件名称
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
/// <summary>
/// 此方法必重写,否则会出错
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
} protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
//列头前面在加一行
if (e.Row.RowType == DataControlRowType.Header)
{
GridViewRow rowHeader = new GridViewRow(, , DataControlRowType.Header, DataControlRowState.Normal);//表头行
TableHeaderCell cell = new TableHeaderCell();
cell.Text = "*****";
cell.ColumnSpan = ;
rowHeader.Cells.Add(cell);
((GridView)sender).Controls[].Controls.AddAt(, rowHeader);
}
}
    

Asp.net Gridview导出Excel的更多相关文章

  1. ASP.NET gridview导出excel,防止繁体产生有乱码的方式

    //1.先引用比如 : using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...

  2. asp.net中导出Excel的方法

    一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

  3. ASP.net中导出Excel的简单方法介绍

    下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...

  4. 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

    -----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...

  5. ASP.NET MVC导出excel

    ASP.NET MVC导出excel 要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式 ...

  6. C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation

    C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...

  7. Asp.net中导出Excel文档(Gridview)

    主要思路,通过GridView来导出文档. 新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源.然后load中直接打印即可导出 前台的GridView <asp:GridVie ...

  8. GridView导出Excel的超好样例

    事实上网上有非常多关于Excel的样例,可是不是非常好,他们的代码没有非常全,读的起来还非常晦涩.经过这几天的摸索,最终能够完毕我想要导出报表Excel的效果了.以下是我的效果图. 一.前台的页面图 ...

  9. ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)

    要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...

随机推荐

  1. Android使用的开发MediaRecorder录制视频

    MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用Medi ...

  2. android学习日记06--SurfaceView视图

    一.API关SurfaceView的介绍 SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface.你可以控制这个Surface的格式和尺寸.Surfacev ...

  3. zendserver 安装 ZendDebugger

    网上都找不到支持PHP5.3及以上的Zend Debugger,然后下载了ZendStudio 10.1,发现它内置的PHP 5.3 和 5.4都支持Debugger, 这Debugger就是Zend ...

  4. 文件I/O之fcntl函数

    fcntl函数可以改变已打开的文件的性质. #include <fcntl.h> int fcntl( int filedes, int cmd, ... /* int arg */ ); ...

  5. MVC中使用QrCodeNet 生成二维码

    QrCodeNet下载地址:http://qrcodenet.codeplex.com/ using System.Drawing; using System.Drawing.Imaging; usi ...

  6. MySQL(17):Select-union(联合查询)使用注意事项

    1. 需求: 获得0115班所有的代课教师代课天数,结果按照升序排序:同时获得0228班,结果按照降序排序. (1)首先查询原来的0115班和0228班所有代课天数,如下:       (2)使用un ...

  7. Convert Date between LocalDateTime

    http://blog.progs.be/542/date-to-java-time Java8 has new date and time classes to “replace” the old ...

  8. 关于Hibernate的总结

    主键的生成策略: * increment      :是由Hibernate完成的自动增长.(不是数据库底层的自动增长的方式.) * select  max(id) from  customer * ...

  9. CentOS下安装福昕PDF软件

    官方下载地址:http://www.foxitsoftware.cn/downloads/ tar -jxvf foxreader.tar.bz2问题:下载官方包以后解压,双击不能打开,也没有任何提示 ...

  10. ThreadLocal 设计模式浅谈

    部分代码:ThreadLocal中 的get方法, 获得的是当前线程相关的对象 /** * Returns the value in the current thread's copy of this ...