找回密码
 立即注册

QQ登录

只需一步,快速开始

xia1001
金牌服务用户   /  发表于:2021-8-18 14:16  /   查看:2302  /  回复:7
1金币
想法是,修改单元格的内容,合计值会自动计算,写在editchange事件里面和change事件里面都试了,手动输入是可以实现的,但是,如果复制一个值进去就不会触发这个事件,另外删除了单元格的值也不会触发,怎么可以触发呢?或者应该使用什么其他的事件来实现?代码如下:        //当用户修改单元格的数据时发生
        private void fpSpread1_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e)
        {           
            if (fpSpread1.ActiveSheetIndex == 1 && fpSpread1.ActiveSheet.ActiveColumnIndex > 5)
            {
                try
                {
                    int nianfenshu = Convert.ToInt32(fpSpread1.Sheets[0].Cells[5, 3].Text);//年数
                    double[] neirong = new double[nianfenshu];//年份列内容数组
                    for (int i = 1; i < 11; i++)
                    {
                        double heji = 0;//获取要添加的合计值
                        for (int j = 0; j < nianfenshu; j++)
                        {
                            if (fpSpread1.Sheets[1].Cells[i, j + 6].Text != "")
                            {
                                neirong[j] = Convert.ToDouble(fpSpread1.Sheets[1].Cells[i, j + 6].Value);
                                heji = heji + neirong[j];
                            }
                        }
                        fpSpread1.Sheets[1].Cells[i, 5].Value = heji;//为合计赋值
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

       }

最佳答案

查看完整内容

后台代码截图 demo附件

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 14:16:20
来自 6#
后台代码截图
image.png755883788.png


demo附件
SpreadCellChange.zip (28.1 KB, 下载次数: 62)
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 14:50:43
2#
您可以使用fpSpread1.ActiveSheet.CellChanged事件,这个在删除,或者粘贴值进去时也会触发
回复 使用道具 举报
xia1001
金牌服务用户   /  发表于:2021-8-18 14:55:44
3#
这个事件在哪里呀
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 15:05:47
4#
xia1001 发表于 2021-8-18 14:55
这个事件在哪里呀

是sheet的事件,通过fpSpread1.Sheets[0],或者fpSpread1.ActiveSheet获取到对应的sheet后,就可以调用CellChanged事件了
回复 使用道具 举报
xia1001
金牌服务用户   /  发表于:2021-8-18 15:15:14
5#
这个时间事件是要在代码里找的吗?可不可以给个使用的例子的呢,谢谢!
回复 使用道具 举报
xia1001
金牌服务用户   /  发表于:2021-8-20 10:00:30
7#
谢谢马老师!解决了!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-20 11:45:04
8#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部