如何设置分组合计行
问题描述:如何实现指定列中相同值行分为一组。问题解答:可以使用GroupDataModel等相关属性设置分组。
关键代码:?
///<summary>
///添加分组脚,并且设置合计
///</summary>
private void CreateGroupFooter()
{
// 添加默认分组列
SheetView sheet = fpSpread1.ActiveSheet;
sheet.AllowGroup = true;
GroupDataModel gdm = newGroupDataModel(sheet.Models.Data);
sheet.Models.Data = gdm;
//SortInfo 构造函数 SortInfo(0, true) 中第一个参数为用于分组的列索引。
SortInfo[] siList = newSortInfo[] { newSortInfo(0, true) };
gdm.Group(siList, null);
//设置默认分组
DefaultGroupFooter dgf = fpSpread1.Sheets.DefaultGroupFooter;
ISheetDataModel dataModel = dgf.DataModel;
FarPoint.Win.Spread.CellType.TextCellType a = newTextCellType();
this.fpSpread1_Sheet1.Columns.Get(0).CellType = a;
//设置分组脚中公式
(dataModel asIAggregationSupport).SetCellAggregationType(0, 3, AggregationType.Sum);
(dataModel asIAggregationSupport).SetCellAggregationFormat(0, 3, "数量合计:{0}");
this.fpSpread1.ActiveSheet.GroupFooterVisible = true;
//获取列宽
this.fpSpread1.ActiveSheet.Columns.Width = this.fpSpread1.ActiveSheet.Columns.GetPreferredWidth();
}
效果截图:
示例下载:点击下载 请问,如何实现,对于已合并的单元格数字,合计时只合计一次?,请问如何做合计呢? 补充代码如下,例如合计第5列的数量如下代码,但是合并单元格的被重复统计了:
wSpdAll_Sheet1.ColumnFooter.SetAggregationFormat(0, 5, "{0}");
wSpdAll_Sheet1.ColumnFooter.SetAggregationType(0, 5, FarPoint.Win.Spread.Model.AggregationType.Sum);
wSpdAll_Sheet1.Models.ColumnFooterRowAxis.SetResizable(5, true);
怎样写代码可以不重复统计已合并的单元格? 回复 3楼yanzhenbin的帖子
目前spread设计会统计已合并的单元格。
只能自己写算法去排除这些单元格。
页:
[1]