`
xiaomimi
  • 浏览: 1391 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

.net中将gridview数据导出到excel中

阅读更多
问题1:
Gridview必须在有runt=sever的窗体标记内
解决办法:
加这样一个方法
public override void VerifyRenderingInServerForm(Control control)
{
     //base.VerifyRenderingInServerForm(control);
}
导出文件扩展名问题:尚未解决;
导出文件内容乱码:
Response.Charset = "";
Response.ContentEncoding = System.Text.Encoding.Unicode;

byte[] rgByteLeader = new byte[] { 0xFF, 0xFE };
Response.BinaryWrite(rgByteLeader);
完整代码

protected void Button1_Click(object sender, EventArgs e)
    {
        VerifyRenderingInServerForm(GridView1);
        ExpertControl(GridView1,"excel","选题信息");
    }
    public override void VerifyRenderingInServerForm

(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }
    //导出方法
    public void ExpertControl(System.Web.UI.Control source,

string doctype, string docName)
    {

        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "";
        Response.ContentEncoding =

System.Text.Encoding.Unicode;
        //设置Http的头信息,编码格式
        if (doctype == "excel")
        {
            //Excel
            Response.AppendHeader("Content-Disposition",

"attachment;filename=" + HttpUtility.UrlEncode(docName,

System.Text.Encoding.UTF8) + ".xlsx");
            Response.ContentType = "application/ms-excel";
        }
        if (doctype == "word")
        {
            //Word
            Response.AppendHeader("Content-Disposition",

"attachment;filename=" + HttpUtility.UrlEncode(docName,

System.Text.Encoding.UTF8) + ".doc");
            Response.ContentType = "application/ms-word";
        }
        byte[] rgByteLeader = new byte[] { 0xFF, 0xFE };
        Response.BinaryWrite(rgByteLeader);
        //关闭控件的视图状态
        source.Page.EnableViewState = false;
        //初始化HtmlWriter
        System.IO.StringWriter writer = new

System.IO.StringWriter();
        HtmlTextWriter htmlWriter = new HtmlTextWriter

(writer);
        source.RenderControl(htmlWriter);
        //输出
        Response.Write(writer.ToString());
        Response.End();
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics