zoukankan      html  css  js  c++  java
  • [转载]gridview导出excel(不会有乱码)

    gridview导出excel(不会有乱码)
    2008-04-08 09:40

    之前我有贴过gridview导出excel的代码,但那个有两上缺点,一:如果gridview有分页的话,那段代码只是导出的当前页的数据,第二页之后的数据是无法导出的。二:那段代码我朋友帮我改进后,可以导出所有页的数据,但是我现在再用导出的中文全是乱码。现在我贴的这个,可以避免上面的两个问题。希望对大家有所帮助。

        protected void lbtnExport_Click(object sender, EventArgs e)
        {
            Response.Clear();
            Page.Response.Buffer = true;
            Response.Charset = "gb2312";
            string strFileName = "FileName.xls";
            Response.AddHeader("content-disposition", "attachment;filename="+HttpUtility.UrlEncode(strFileName,System.Text.Encoding.UTF8));
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            Response.ContentType = "application/ms-excel";
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();


            DataView dv = (DataView)Session["ds"];
            string xls = @"<Table><TR>";
            int i;
            int j;
            //导出EXCEL显示的标题
            for (i = 1; i < dv.Table.Columns.Count; i++)
            {
                xls += @"<TD>" + gvAnalyze.Columns[i].ToString() + @"</TD>";   //dv.Table.Columns[i].Caption

            }
            //数据部分
            xls = xls + @"</TR>";
            for (i = 0; i < dv.Table.Rows.Count; i++)
            {
                xls = xls + @"<TR>";
                for (j = 0; j < dv.Table.Columns.Count; j++)
                {
                    xls = xls + @"<TD>" + dv.Table.Rows[i][j].ToString() + @"</TD>";
                }
                xls = xls + @"</TR>";
            }
            xls = xls + @"</Table>";
            Response.Write(xls);
            Response.End();
            Binding();
        }

    其中的session["dv"]我在数据绑定方法(即Binding)中给它赋过值了,所以使用的朋友,可以根本自己的要求灵活运用。

  • 相关阅读:
    监听属性改变defineProperty和文档碎片createDocumentFragment
    this指向bind、call、apply
    css mask文字渐变+clip-path裁剪路径+border-image图片边框
    浅谈 Hybrid App
    activiti与flowable的区别(转)
    JAVA:定时器的三种方法(详细注解)
    Activiti5
    别再写满屏的try-catch了,真丑,全局异常处理不会吗?(转)
    共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据...(转)
    什么是跨域?跨域解决方法(转)
  • 原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1427017.html
Copyright © 2011-2022 走看看