找回密码
 立即注册

QQ登录

只需一步,快速开始

grb

初级会员

17

主题

53

帖子

461

积分

初级会员

积分
461

微信认证勋章

[已处理] 合计行

grb
初级会员   /  发表于:2018-12-23 16:22  /   查看:3472  /  回复:8
spread.sheet中,如何在绑定数据后添加合计行。在绑定了数据后,计算到最后一行的索引,进行setValue setText和setFormula不起作用。

8 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-24 10:00:58
沙发
您好,要添加合计行是可以实现的,具体方法需要看您是哪种绑定方式。

1、数据是表格绑定时,可以参考学习指南:

https://demo.grapecity.com.cn/SpreadJS/TutorialSample/#/demos/tableBinding

2、如果是表单绑定,我这边做了一个Demo,已经上传到附件了,您参考一下。

TotalCost_grb.html

2.94 KB, 下载次数: 175

回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-24 15:23:19
板凳
KevinChen 发表于 2018-12-24 10:00
您好,要添加合计行是可以实现的,具体方法需要看您是哪种绑定方式。

1、数据是表格绑定时,可以参考学 ...

我是绑定表单,但是不是手动出发添加合计,是每次绑定数据后自动添加合计行,遇到的问题是。合计行会重复添加,重新绑定后会在之前添加合计行基础上再添加一行,这个只能绑定数据后先delete行再add行吗?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-24 15:51:44
地板
表单绑定每次执行都会清空之前绑定的内容,所以应该不会出现您说的这种情况,

我这边修改了一下Demo,实现了重复绑定数据源的功能,上传到附件中您参考一下。

TotalCost_grb.html

2.83 KB, 下载次数: 149

回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-25 14:48:12
5#
KevinChen 发表于 2018-12-24 15:51
表单绑定每次执行都会清空之前绑定的内容,所以应该不会出现您说的这种情况,

我这边修改了一下Demo,实 ...

反复点击附件中示例的两个按钮,合计行会重复添加啊。

index.html

4.28 KB, 下载次数: 135

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-25 15:40:13
6#
grb 发表于 2018-12-25 14:48
反复点击附件中示例的两个按钮,合计行会重复添加啊。

因为这里设置了数据绑定的缘故,所以合计行也会被自动添加到dataSource中,

这样当您反复绑定dataSource时,合计行就会重复添加。

您只需要加一个判断,判断dataSource最后一个元素是否是合计即可,

代码如下:

  1. // 添加合计行
  2.           const rowCount = sheet.getRowCount();
  3.           if (rowCount > 0 && data[data.length-1].name !== "合计") {
  4.               sheet.addRows(sheet.getRowCount(), 1);
  5.               sheet.setValue(sheet.getRowCount() - 1, 0, '合计');
  6.               sheet.setFormula(sheet.getRowCount() - 1, 1, '=SUM(B1:B2)');
  7.           }
复制代码
回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-25 16:18:03
7#
KevinChen 发表于 2018-12-25 15:40
因为这里设置了数据绑定的缘故,所以合计行也会被自动添加到dataSource中,

这样当您反复绑定dataSour ...

您之前说表单重新绑定会清空绑定内容,为什么这里不会清空?只能通过判断吗?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-25 17:13:05
8#
grb 发表于 2018-12-25 16:18
您之前说表单重新绑定会清空绑定内容,为什么这里不会清空?只能通过判断吗?

是这样,关于数据绑定的含义您可能稍有误解,

您在执行了数据绑定之后,您对表单所作的操作,都会被即时同步到您的dataSource中。

也就是说,当我们添加了合计行后,dataSource中也多了一个合计行的元素。

那么当您使用同一套逻辑再次绑定这个dataSource时,这个合计行就被绑定进来了,

此时我们再添加一个合计行,就会导致重复的发生。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-25 17:13:51
9#
您也可以在绑定dataSource前进行判断,如果存在这个合计行元素,把它从dataSource中删除 ,

效果也是一样的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部