找回密码
 立即注册

QQ登录

只需一步,快速开始

EplanningSoft

初级会员

15

主题

73

帖子

210

积分

初级会员

积分
210
EplanningSoft
初级会员   /  发表于:2020-9-18 15:25  /   查看:2616  /  回复:9
本帖最后由 EplanningSoft 于 2020-9-18 15:27 编辑

1、引用gcspread.sheets.all.9.40.20153.0.js,初始化加载spread数据后,部分公式不计算
image.png253904723.png

2、经调试发现,换成gcspread.sheets.all.9.40.20161.7.min.js,公式能够正确计算,但是recalcAll 计算服务效率会很慢
使用gcspread.sheets.all.9.40.20153.0.js的计算服务sheet.recalcAll() 执行时间
image.png612163390.png
使用gcspread.sheets.all.9.40.20161.7.min.js的计算服务sheet.recalcAll() 执行时间
image.png900903320.png


我需要在保证数据计算完全正确的前提下,提高spread加载的效率,麻烦尽快提供一下解决方案吧

SpreadJS.rar

2.09 MB, 下载次数: 69

9 个回复

正序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-22 18:29:01
10#
抱歉,我这边还是没有发现错误在哪?按照您所说的测试,首先打开您给的demo
D167显示2028年2月如下图所示:
image.png524819335.png
双击D167单元格进入编辑状态后,按下CTRL+SHIFT+ENTER,结果没有改变
image.png126015624.png
Excel中重复上述操作,结果一致:
image.png956645202.png
回复 使用道具 举报
EplanningSoft
初级会员   /  发表于:2020-9-22 15:45:36
9#
ClarkPan 发表于 2020-9-21 14:54
这边recalcall慢的问题我按照您这边提供的数据测试了一下,测试结果跟dexter的一致,在20161上没有发现慢的 ...

recalcall慢的问题,我们这边再研究一下试试看
EDATE公式,我这边知道为啥客户说不对了,是必须要在这个单元格里按一下CTRL+SHIFT+ENTER 才可以,初始的时候,确实是不太准确的
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-21 14:54:42
8#
这边recalcall慢的问题我按照您这边提供的数据测试了一下,测试结果跟dexter的一致,在20161上没有发现慢的问题

测试的时候我注释掉了隐藏数据的代码

另外公式计算的在Excel中出错的问题,我也没能够重现,您所说的单元格在Excel中与在SpreadJS中的结果完全一致。这里附上导出的Excel
image.png686062926.png
image.png376053466.png

3.xlsx

166.28 KB, 下载次数: 80

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-9-21 12:15:07
7#
问题收到,需要花时间看一下,有结果跟您回复。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
EplanningSoft
初级会员   /  发表于:2020-9-18 18:26:02
6#
dexteryao 发表于 2020-9-18 17:47
现在不会去关注20153为啥没计算,这个问题在20161已经修复了,你说的2016慢的问题我们这边没重现。

为了能让你们明显的看出来公式计算的问题,上面把单元格数据清理掉了
你们可以把数据都加上试试看,还有 resumeCalcService() 服务的时间,也比较慢
能不能优化一下,或者换个其他的什么方法变通一下
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-18 17:47:21
5#
现在不会去关注20153为啥没计算,这个问题在20161已经修复了,你说的2016慢的问题我们这边没重现。 image.png971570129.png
回复 使用道具 举报
EplanningSoft
初级会员   /  发表于:2020-9-18 16:58:44
地板
Fiooona 发表于 2020-9-18 16:04
未能重新您的问题,能提供更多的线索吗?

直接运行demo的index.html,D91单元格,D96单元格,值是错的,都是无法计算的,你可以打开看一下
只有手动再录入一个数据,触发一下编辑改变事件,公式才会算对
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-9-18 16:04:24
板凳
未能重新您的问题,能提供更多的线索吗?
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
EplanningSoft
初级会员   /  发表于:2020-9-18 15:31:29
沙发
本帖最后由 EplanningSoft 于 2020-9-18 15:36 编辑

追加问题:上述附件中的demo,第 167 行 D 列 中的公式计算结果 和Excel中的不一致
=IFERROR(EDATE(INDEX(E55 : DT55,MATCH(0,E78 : DT78,1)),1),"")
此公式需要得出的结果是,取78行中最后一批 正数 的第一个数据列,对应的 55 行那一列的 日期值
如果78行的数据规律是  由负到正,那么此公式的计算结果就是正确的
如果78行的数据  先由负到正,再由正到负,再由负到正,就是驼峰式的形式,这时 此公式的计算结果就是错误的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部