handsontable使用及遇到的坑--公式计算(思路)

2023-11-11

公式

公式的计算可使用堆栈的思想将运算符后置,如:C1=(A1+A2)*5+B1可以变换成:[A1,A2+5*B1]
计算过程为,假设A1=1,A2=2,B1=3
C1=(A1+A2)*5+B1
[A1,A2+5*B1]
[1,2,+,5*,3,+]
[3,5*,3+]
[15,3+]
[18]
这样即可计算出最终答案C1=18

当计算公式中值发生变化时处理方法

前面提到过自定义数据结构,可以定义单元格的依赖
C1依赖A1,A2,B1,当这个三个单元格的值发生变化时需要重新计算C1的值

方式一

第一次我采用的方法邻接关系(有向图),假设上面的表格是3*3,则矩阵为

* A1 A2 A3 B1 B2 B3 C1 C2 C3
A1 - - - - - - T - -
A2 - - - - - - T - -
A3 - - - - - - - - -
B1 - - - - - - T - -
B2 - - - - - - - - -
B3 - - - - - - - - -
C1 - - - - - - - - -
C2 - - - - - - - - -
C3 - - - - - - - - -

加设当A1的值发生变化,只查第二行,法向C1依赖他,然后更新C1,继续查C1列发现没有单元格依赖就停止了

方式二

采用订阅,来触发更新,
写一个事件类,C1,订阅A1A2B1,当这三个单元格值发生变化时发出change事件,C1就更新

这些都是我已经实现了的,绝对可行……

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

handsontable使用及遇到的坑--公式计算(思路) 的相关文章

随机推荐

  • 码农保命秘诀之全身检查_专属全身体检项目大全

    废话不多说 狗命要紧 下面直接上干货 健康活着才有输出 特别是28 35之间的不注重身体 往往打败你的不是敌人 而是你自己 还怎么冲刺35大关 里面的注释简单看看就行 主要是照单让医生开单检查 挂个内科 说自己身体哪里不舒服 需要这些检查
  • ADS系列 – 低噪声放大器(LNA)模型下载安装及 LNA仿真设计

    1 概述 低噪声放大器 Low Noise Amplifier LNA 作为接收系统的第一个电路单元 它的性能直接影响着整个接收机的性能 低噪声放大器的功能是在保证产生最低的噪声前提下 将信号进行放大 以降低后续模块所产生的噪声对信号的影响
  • windows2008 不能跳出修复选项

    windows2008 R2意外断电后无法启动 提示修复或者正常启动 但即便你选择正常启动 系统还是会跳到修复选项 看起来是要折腾一下 BIOS自检 找到硬盘引导记录MBR MBR读分区表 找到主分区 读取主分区的引导记录 搜索启动管理器文
  • 三、C++语言进阶:动态库与静态库之类篇

    3 动态库与静态库之类篇 3 1 素材 文件 test h pragma once class Test public Test Test void Func int i test cpp include
  • 【死磕 Java 基础】— 我同事一个 select 分页语句查出来了 3000W 条数据

    大家好 我是大明哥 某天我正在工位上听着 Victory 愉快地敲着 hello world 这感觉就像我写的代码能征服世界 突然运维给我打了一个电话 说我们某台服务器 OOM 了 要我过去看下 这感觉就像 xxx 你懂的 去运维室 登录服
  • 【HBZ分享】ElasticSearch读写数据的原理 以及 路由策略原理-【短而精悍,易于理解】

    ElasticSearch分布式工作原理 是如何进行读写数据的 1 简单介绍ES 首先es是分布式的 只要我们启动相应数量的节点 并且这些节点分配相同的cluster name 那他们就对属于同一个集群了 创建索引的时候 只需要指定对应的主
  • js的继承的实现与代码编写

    js的继承的实现与代码编写 一 继承 对象的一个类可以从现有的类中派生 并且拥有现有的类的方法或是属性 这和过程叫做继承 被继承的类叫做父类或是基类 继承的类叫做子类 一个对象拥有另一个对象的属性和方法 在 JavaScript 中 是没有
  • QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object 它把绝大多数Qt提供的数据类型都封装起来 起到一个数据类型 擦除 的作用 比如我们的 table单元格可以是string 也可以是int 也可以是一个颜色值 那么这么多类型怎么返回呢 于是 Qt提
  • 性能测试连载 (10)-数据错误率分析

    概述 性能测试脚本跑完了之后 我们除了要收集瓶颈数据 还有分析错误数据 通常一套脚本跑完 错误类型不止一种 但是jmeter只会在聚合报告里面给出一个总体的错误率 错误率 jmeter里的错误率是如何统计的 在返回的数据里面 只要succe
  • Maven项目中出现红色波浪线的解决过程

    一 问题分类 对于Maven项目出现红色波浪线可以首先对报错情况进行分析 我遇到的两种表现形式 还有其他的形式 请多多指教 形式一 所用文件均出现红色波浪线 此问题可能是配置问题 形式二 maven项目 Plugins Dependenci
  • Element-Ui

    安装环境搭建 Element Ul是饿了么前端团队推出的一款基于Vue js 2 0 的桌面端UI框架 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 手机端有对应框架是Mint UI 中文文档 http elem
  • 蓝桥杯 奇数倍数

    蓝桥杯 奇数倍数 题目 请你找到最小的整数 X 同时满足 1 X 是 2019 的整倍数 2 X 的每一位数字都是奇数 思路 1 先找2019倍数 2 判断它的每一位是否是奇数 Java代码 public class 奇数倍数 public
  • 2022跨年烟花代码(一)Canvas绘制3D烟花动画特效

    Canvas绘制3D烟花动画特效 html代码
  • Knife4j+gateway动态路由聚合微服务API

    概述 knife4j的聚合API 其实官网有现成的例子 但包括其他能搜索到的资料都是基于静态网关的配置 我们现有的都是结合nacos实现动态网关配置 基于此留下这篇完整的教程文档 说明 本文假定你有一定的springcloud等相关知识 如
  • 树莓派安装配置syncthing

    下载 从这里下载软件 下载后解压 把二进制文件放到 usr local bin 目录 在命令行输入syncthing version命令 能打印出版本即可 自动启动 Unit Description Syncthing Open Sourc
  • struts2验证框架的两种方式

    第一种 在action同目录下建立 action validation xml
  • 关于JavaScript的浅拷贝和深拷贝

    关于JavaScript的浅拷贝和深拷贝 在 JS 中有一些基本类型像是Number String Boolean 而对象就是像这样的东西 name Larry skill Node js 对象跟基本类型最大的不同就在于他们的传值方式 基本
  • logging的使用python3

    以时间命名输出日志 def init logging t str time strftime Y m d H M time localtime filename log s txt t logging basicConfig level l
  • 刷题 3.10

    目录 1 约瑟夫环 蓝桥231 2 排它平方数 蓝桥712 3 买不到的数目 蓝桥213 思维题 思路 因为有解 两个数一定互质 不能拼成的最大数是xy x y 4 回文日期 1 约瑟夫环 蓝桥231 题目描述 n 个人的编号是 1 n 如
  • handsontable使用及遇到的坑--公式计算(思路)

    公式 公式的计算可使用堆栈的思想将运算符后置 如 C1 A1 A2 5 B1可以变换成 A1 A2 5 B1 计算过程为 假设A1 1 A2 2 B1 3 C1 A1 A2 5 B1 A1 A2 5 B1 1 2 5 3 3 5 3 15