FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 2913|回复: 5
打印 上一主题 下一主题

请问一下Grid导出excel,是不是只能导出当前页显示的数据?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-18 10:05:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

有没有可能导出所有数据?
刚刚试了一下 只能导出当前页的数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2013-7-18 10:05:54 | 只看该作者
如果可以,怎么设置啊?
板凳
发表于 2013-7-18 10:25:13 | 只看该作者
可以,点击按扭后再次按条件查询,然后直接导出数据集:
        public static void CreateExcelForHtml(DataSet ds, string FileName, FineUI.Grid grid)//将DataSet中的数据导出Execl For Html 格式
        {
            //把DataSet中的数据导出,也就是把DataSet中的表中的各行信息,以ms-excel的格式Response到http流,
            //说明:参数ds应为填充有数据表的DataSet,文件名是全名,包括后缀名,如execl2006.xls
            HttpResponse resp;
            resp = HttpContext.Current.Response;//HttpContext.Current.
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
            resp.ContentType = "application/excel";
            string colHeaders = "", ls_item = "",F,C;
            StringBuilder sb = new StringBuilder();
            sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
            sb.Append("<tr>");
            DataTable dt = ds.Tables[0];//
            DataRow[] myRow = dt.Select();//
            int i = 0;
            int cl = dt.Columns.Count;
            for (i = 0; i < cl; i++)//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
            {
                colHeaders = dt.Columns[i].Caption.ToString();
                colHeaders = ReturnCaption(colHeaders, grid);//根据字段名返回中文名称
                sb.AppendFormat("<td>{0}</td>", colHeaders);
            }
            sb.Append("</tr>");
            for (i = 0; i < cl; i++)//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
            {
                colHeaders = dt.Columns[i].Caption.ToString();
                //colHeaders = ReturnCaption(colHeaders, grid);//根据字段名返回中文名称
                sb.AppendFormat("<td>{0}</td>", colHeaders);
            }
            sb.Append("</tr>");
            foreach (DataRow row in myRow)//逐行处理数据   
            {
                sb.Append("<tr>");
                for (i = 0; i < cl; i++)//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据   
                {
                    ls_item = row[i].ToString().Trim();
                    F = dt.Columns[i].Caption.ToString().ToLower();
                    C = ReturnCaption(F, grid);//根据字段名返回中文名称
                    if (F == "cardnumber" || F == "autoid" || F == "nodenumber" || F == "parentnodenumber"||C.IndexOf("号")>=0)  //如果为数值字段
                    {
                        sb.AppendFormat("<td style='mso-number-format:\"\\@\";'>{0}</td>", ls_item);
                    }
                    else sb.AppendFormat("<td>{0}</td>", ls_item);
                }
                sb.Append("</tr>");
            }
            sb.Append("</table>");
            resp.Write(sb.ToString());//向HTTP输出流中写入取得的数据信息
            resp.End();
        }
地板
 楼主| 发表于 2013-7-18 10:32:26 | 只看该作者
本帖最后由 violetzone 于 2013-7-18 10:33 编辑
秋收 发表于 2013-7-18 10:25
可以,点击按扭后再次按条件查询,然后直接导出数据集:
        public static void CreateExcelForHtml(D ...


谢谢,另外在论坛上还找了另外一种方法,同做参考http://fineui.com/bbs/forum.php?mod=viewthread&tid=3324&fromuid=4767
5#
发表于 2013-9-24 09:04:38 | 只看该作者
学习了~~~~感谢分享~
6#
发表于 2013-10-18 10:03:58 | 只看该作者
嘿嘿,不错,踩踩
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-29 06:14 , Processed in 0.047527 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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