请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

roger.wang
社区贡献组   /  发表于:2014-5-16 11:36  /   查看:4466  /  回复:3
问题描述:如何实现指定列中相同值行分为一组。
问题解答:可以使用GroupDataModel等相关属性设置分组。
关键代码:?

  1.         ///<summary>
  2.         ///添加分组脚,并且设置合计
  3.         ///</summary>
  4. private void CreateGroupFooter()
  5.         {
  6.             // 添加默认分组列
  7.             SheetView sheet = fpSpread1.ActiveSheet;
  8.             sheet.AllowGroup = true;
  9.             GroupDataModel gdm = newGroupDataModel(sheet.Models.Data);
  10.             sheet.Models.Data = gdm;
  11.             //SortInfo 构造函数 SortInfo(0, true) 中第一个参数为用于分组的列索引。
  12.             SortInfo[] siList = newSortInfo[] { newSortInfo(0, true) };
  13.             gdm.Group(siList, null);

  14.             //设置默认分组
  15.             DefaultGroupFooter dgf = fpSpread1.Sheets[0].DefaultGroupFooter[0];
  16.             ISheetDataModel dataModel = dgf.DataModel;

  17.             FarPoint.Win.Spread.CellType.TextCellType a = newTextCellType();
  18.             this.fpSpread1_Sheet1.Columns.Get(0).CellType = a;
  19.             //设置分组脚中公式
  20.             (dataModel asIAggregationSupport).SetCellAggregationType(0, 3, AggregationType.Sum);
  21.             (dataModel asIAggregationSupport).SetCellAggregationFormat(0, 3, "数量合计:{0}");

  22.             this.fpSpread1.ActiveSheet.GroupFooterVisible = true;

  23.             //获取列宽
  24.             this.fpSpread1.ActiveSheet.Columns[3].Width = this.fpSpread1.ActiveSheet.Columns[3].GetPreferredWidth();
  25.         }
复制代码


效果截图:


示例下载:点击下载

本帖子中包含更多资源

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

x

3 个回复

倒序浏览
yanzhenbin
初级会员   /  发表于:2015-3-13 15:17:00
沙发
请问,如何实现,对于已合并的单元格数字,合计时只合计一次?,请问如何做合计呢?
回复 使用道具 举报
yanzhenbin
初级会员   /  发表于:2015-3-13 15:19:00
板凳
补充代码如下,例如合计第5列的数量如下代码,但是合并单元格的被重复统计了:
wSpdAll_Sheet1.ColumnFooter.SetAggregationFormat(0, 5, &quot;{0}&quot;);
                wSpdAll_Sheet1.ColumnFooter.SetAggregationType(0, 5, FarPoint.Win.Spread.Model.AggregationType.Sum);
                wSpdAll_Sheet1.Models.ColumnFooterRowAxis.SetResizable(5, true);
怎样写代码可以不重复统计已合并的单元格?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-13 17:05:00
地板
回复 3楼yanzhenbin的帖子

目前spread设计会统计已合并的单元格。
只能自己写算法去排除这些单元格。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册