对FineU框架Grid多表头合计行导出Excel的回顾

  年前用FineUI开发遇到了这样一个问题,Grid多表头合计行不能导出,后面到官方示例找了一下,庆幸的是找到了多表头的导出示例。然后当时为了省事,直接就复制粘贴完事,也没有仔细的研究代码。后来运行一看,多表头的问题是解决了,合计行的问题还是没有解决。

  由于到时要赶流程这个问题就暂时的放在了那里,时间长了也忘了这个问题,这个星期项目测试验收才重新发现这个问题(还好客户没有发现,偷笑)。昨天不经意间调试了下,发现count只有16条数据,加上合计行应该有17条数据才对啊。仔细看了下代码原来官方示例上的代码根本就没有写导出合计行的代码。

  找出问题就好办了,整理下思路,首先要拿到合计行的数据保存为Json,然后拿到Grid所有列的ID,最后判断合计行Json是否存在这个ID的节点,如果有就写入数据没有就写入空

  下面附上代码

 1 sb.Append("<tr>");
 2             JObject summarty = grid.SummaryData;//获取合计行数据
 3             if (summarty != null && summarty.ToString() != "")//判断合计行数据是否为空
 4             {
 5                 foreach (GridColumn column in mht.Columns)//遍历出列的id
 6                 {
 7                     if (summarty.Property(column.ColumnID.ToString()) == null || summarty.Property(column.ColumnID.ToString()).ToString() == "")//判断合计行Json是否存在该节点
 8                     {
 9                         sb.AppendFormat("<td>{0}</td>", "");//如果没有就为空
10                     }
11                     else
12                     {
13                         sb.AppendFormat("<td>{0}</td>", summarty[column.ColumnID.ToString()].ToString());//如果有就写入数据
14                     }
15                 }
16             }
17             sb.Append("</tr>");

  至于多表头的导出我就不解释也不附上代码了,直接引用三石大大的博客。http://www.cnblogs.com/sanshi/p/4104411.html

  

  第一次写博客写的不好,有问题的地方希望大家能够指出,非常感谢!作为新人,在此给各位前辈问好,希望各位前辈多多指教。

原文地址:https://www.cnblogs.com/ThreeStone007/p/5242575.html