FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
12
返回列表 发新帖
楼主: 啃O
打印 上一主题 下一主题

grid导出excel问题

[复制链接]
11#
发表于 2012-6-21 13:54:40 | 只看该作者
啃O 发表于 2012-6-20 14:37
我也不知道我的为什么不行 我就是用的官方演示上的grid
后台button代码如下
            Response.ClearCo ...

应该使用这种的:
   Response.ClearContent();
    Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
    Response.ContentType = "application/excel";
    Response.Write(GetGridTableHtml(Grid1));
    Response.End();


private string GetGridTableHtml(Grid grid)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
    sb.Append("<tr>");
    foreach (GridColumn column in grid.Columns)
    {
        sb.AppendFormat("<td>{0}</td>", column.HeaderText);
    }
    sb.Append("</tr>");

    foreach (GridRow row in grid.Rows)
    {
        sb.Append("<tr>");
        foreach (object value in row.Values)
        {
            string html = value.ToString();
            sb.AppendFormat("<td>{0}</td>", html);
        }
        sb.Append("</tr>");
    }
    sb.Append("</table>");
    return sb.ToString();
}
12#
 楼主| 发表于 2012-6-21 14:41:37 | 只看该作者
易水临风 发表于 2012-6-21 13:54
应该使用这种的:
   Response.ClearContent();
    Response.AddHeader("content-disposition", "attac ...

呵呵 谢谢易水临风 问题解决了
13#
发表于 2012-6-21 15:00:19 | 只看该作者
啃O 发表于 2012-6-21 14:41
呵呵 谢谢易水临风 问题解决了

哈哈...我的问题还没解决啊,为什么有些机器导出来显示乱码呀?
14#
发表于 2012-6-23 13:33:00 | 只看该作者
啃O 发表于 2012-6-21 13:16
我是看三石大哥的博客上这么用的。

有吗?给个链接看看?
15#
发表于 2012-8-22 00:22:15 | 只看该作者
乱码是输出内容编码的问题。请参考:

            HttpResponse Response = HttpContext.Current.Response;
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}.xls", HttpContext.Current.Server.UrlEncode("导出数据")));
            //设置输出流为简体中文
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            //设置输出文件类型为excel文件。如果需要为WORD文件,则为Response.ContentType = "application/ms-word";
            Response.ContentType = "application/ms-excel";
16#
发表于 2012-8-22 03:47:38 | 只看该作者
本帖最后由 〓飚〓 于 2012-8-22 04:28 编辑

关于输出流导出Excel的问题,还是新开个帖子讲吧
17#
发表于 2012-8-22 07:01:01 | 只看该作者
我的extaspnet grid导出excel,是把数据装到datatable,用ExcelEngine 导出的
18#
发表于 2012-8-22 07:01:41 | 只看该作者
我的extaspnet grid导出excel,是把数据装到datatable,用ExcelEngine 导出的
19#
发表于 2012-9-10 02:33:16 | 只看该作者
易水临风 发表于 2012-6-21 13:54
应该使用这种的:
   Response.ClearContent();
    Response.AddHeader("content-disposition", "attac ...

为什么我点击完按钮之后没有任何反应呢,按钮还禁用了,是不是代码有什么问题呢
protected void Button1_Click(object sender, EventArgs e)
        {
            Response.ClearContent();
            Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
            Response.ContentType = "application/excel";
            Response.Write(GetGridTableHtml(Grid1));
            Response.End();
        }


        private string GetGridTableHtml(Grid grid)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
            sb.Append("<tr>");
            foreach (GridColumn column in grid.Columns)
            {
                sb.AppendFormat("<td>{0}</td>", column.HeaderText);
            }
            sb.Append("</tr>");

            foreach (GridRow row in grid.Rows)
            {
                sb.Append("<tr>");
                foreach (object value in row.Values)
                {
                    string html = value.ToString();
                    sb.AppendFormat("<td>{0}</td>", html);
                }
                sb.Append("</tr>");
            }
            sb.Append("</table>");
            return sb.ToString();
        }
20#
发表于 2012-9-10 12:48:08 | 只看该作者
゛阳光灿烂下的 发表于 2012-9-10 02:33
为什么我点击完按钮之后没有任何反应呢,按钮还禁用了,是不是代码有什么问题呢
protected void Button1_ ...

还要设置Button的EnableAjax="false" DisableControlBeforePostBack="false"
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-9-28 01:35 , Processed in 0.044975 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表