请教实现单元格公式的算法方案,谢谢!
http://www.cnprog.com/questions/40/如何实现如Excel的单元格公式?
http://www.cnprog.com/questions/40/如何实现如Excel的单元格公式?
解决方案 »
- 2个数组,我想找出a中有,而b没有的,b有而a没有的,怎样才能达到最高效率
- 关于百度弹出层popup.js的问题,路过的看下,谢谢~~~~~
- JS提交跳转问题
- 求求高手赶快来解决,能逼疯~~~!!在线等啊~~
- 修正: jickie_liu 在 "请教字符串的编码形式?" 中的回复
- 求让窗口自动缩小到一定大小的代码?
- js用location.href=表达,<a href="aaa.htm" target="_blank">
- (正则表达式)如何将主体内容的最后一个空行去掉?
- 请问在javascript中,假定有一个变量定义为:var a = "技术问题";在同样的一个javascript中,如何将a转变为是以英文编码为标准的字符,同
- 一般输出的:)和TEXTAREA的:)不同,为什么?
- 梅花雪 老大,请教个问题!
- 初次使用链接数据库
单元格之间的依存关系肯定要构建数据结构来进行描述.
这样才能知道从哪个单元格开始计算.
不过这个结构不是树结构.
其实用javascript来定义数据结构其实很容易实现.另外,计算之前还要进行依存关系的校验.
以避免出现循环依赖的关系.
都找不到这个帖子了.
花点时间琢磨一下这个算法.
第2步,遍历未填充的公式单元格,若公式涉及的因子单元格都已填充,则计算并填充该单元格。
……
第N步,一直重复第2步的操作,直到本步未能填充任何单元格。第2步到第N步的过程就是一个while迭代。
第N+1步,检查是否还有剩余的未填充的公式单元格,如有,则表明其公式是无效的。
每填充一个单元格,标记该单元格的filled属性为true
举例来说,
A1=1,B2=2,C3=3, C4=A1+B2, B3=C4+C3,B4=B4+5
第1步,填充A1,B2,C3
第2步,填充C4,因为C4的因子单元格(A1和B2)都已填充。
第3步,填充B3,因为B3的因子单元格(C4和C3)都已填充(C3在第1步已填充,C4在第2步已填充)。
第4步,找不到可填充的单元格了,退出循环。
第5步,检查得知B4未被填充,表明B4的公式是无效的。
完毕。
已经讲的很清楚了,代码我就不写了。
就是有两个问题:
1.要分析每个cell公式中,有哪些被引用的cell,本身是个没有解决的问题
2.这样做每次更新一个cell,简要扫描grid中所有的cell我的想法是,能够把公式树中的cell放到一根“树”上,描述cell之间的依赖关系。这样更新某个cell,就有办法知道需要更新被影响的其他cells。