首页 新闻 会员 周边 捐助

.net导出excel文件并下载

0
[已关闭问题] 关闭于 2012-02-24 15:01

Response.Charset = "GB2312";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
            Response.ContentType = FileType;
            this.EnableViewState = false;
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);
            lvResult.RenderControl(hw);
            Response.Write(tw.ToString());
            Response.End();

是用这种方法导出的。但是点导出按钮的时候,总提示用迅雷下载,而且下载的时候是当前.aspx文件。请问有什么办法解决?

假扮天使的主页 假扮天使 | 初学一级 | 园豆:30
提问于:2012-02-23 14:44
< >
分享
所有回答(3)
-1

Response.ContentType = "application/ms-excel";
在前面加上这句 

--宁静以致远-- | 园豆:364 (菜鸟二级) | 2012-02-23 15:02

这句我有。。调用这个方法的时候加进去的。没用。

支持(0) 反对(0) 假扮天使 | 园豆:30 (初学一级) | 2012-02-23 15:14

@假扮天使: Response.Flush();补在Response.Write(tw.ToString());后面试试

支持(0) 反对(0) --宁静以致远-- | 园豆:364 (菜鸟二级) | 2012-02-23 15:19

@--宁静以致远--: 还是没用。

支持(0) 反对(0) 假扮天使 | 园豆:30 (初学一级) | 2012-02-23 15:33
0

一般迅雷会自动把文件名改成导出的excel名字的

要不想让迅雷弹出,只能在迅雷设置里面把浏览器监控关掉,没有好办法了

_A_A | 园豆:1139 (小虾三级) | 2012-02-23 17:06

试了好几次,在本地生成XML构造Excel还有用文件流写一个Excel文件,都不好使。唉。

支持(0) 反对(0) 假扮天使 | 园豆:30 (初学一级) | 2012-02-24 15:01
0

可以看看我的代码:

 /// <summary>
        /// 将GridView的数据输出到Excel文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnExportToExcel_Click(object sender, EventArgs e)
        {
            if (GridView1.Rows.Count == 0)
            {
                return;
            }
            Response.ClearContent();
            Response.ContentEncoding = System.Text.Encoding.Default;
            Response.AddHeader("content-disposition", "attatchment;filename=" + HttpUtility.UrlEncode("Sheet1.xls", System.Text.Encoding.UTF8));
            Response.ContentType = "application/vnd.ms-excel";

            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter htw = new HtmlTextWriter(sw))
                {
                    GridView1.RenderControl(htw);
                    Response.Write(sw.ToString());
                    Response.End();
                }
            }
        }

        /// <summary>
        /// 必须重载此方法,以便支持上面的导出操作
        /// </summary>
        /// <param name="control">需要导出数据的控件</param>
        public override void VerifyRenderingInServerForm(Control control)
        {

        }
土豆屋 | 园豆:354 (菜鸟二级) | 2012-05-17 22:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册