找回密码
 立即注册

QQ登录

只需一步,快速开始

天下

注册会员

9

主题

57

帖子

126

积分

注册会员

积分
126
天下
注册会员   /  发表于:2022-10-20 09:49  /   查看:2220  /  回复:12
本帖最后由 天下 于 2022-10-20 11:31 编辑

开始页面是这样的: image.png156802062.png ,点击下载后,数据变了 image.png207709960.png 。怀疑是由于toJson()引起的,下载的代码逻辑是:
      let json = null
      json = this.spread.toJSON()
      const fileName = 'test.xlsx'
      const jsonStr = JSON.stringify(json)
      const excelIO = new Excel.IO()
      excelIO.save(jsonStr, function(blob) {
        downloadFileStram(blob, fileName)
      })

image.png797365417.png
image.png455058898.png
image.png536420897.png

显示不一致.zip

44.92 KB, 下载次数: 60

12 个回复

正序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-21 18:01:04
13#
本帖最后由 Ellia.Duan 于 2022-10-21 18:04 编辑
天下 发表于 2022-10-21 17:22
可以理解为,doNotRecalculateAfterLoad:true会避免渲染完成时出现空白的情况,是么

不是这么理解,fromJSON中doNotRecalculateAfterLoad的默认值为false,即默认加载json时重新计算。如果设置为true,可以在一定程度上降低加载时间,这个过程有可能会出现公式问题。 既然您这边没有这么设置,咱们就不纠结这个doNotRecalculateAfterLoad用法了,您这边最好还是上传一份能复现问题的demo吧。
回复 使用道具 举报
天下
注册会员   /  发表于:2022-10-21 17:22:58
12#
Ellia.Duan 发表于 2022-10-21 17:08
在fromJSON过程中,可以设置加载json是避免计算,这样子设置可以在加载的时候 大大提高性能,适合一些大 ...

可以理解为,doNotRecalculateAfterLoad:true会避免渲染完成时出现空白的情况,是么
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-21 17:08:52
11#
本帖最后由 Ellia.Duan 于 2022-10-21 17:46 编辑
天下 发表于 2022-10-21 15:47
这个值没有设置,因为已经渲染完成了,二次计算的作用是啥呢。
  1. spread.fromJSON({doNotRecalculateAfterLoad:true})
复制代码
在fromJSON过程中,可以设置加载json时避免计算(默认false,即加载时重新计算),这样子设置可以在加载的时候 大大提高性能,适合一些大文件,大量公式的场景。所以在一些场景中可以这么设置。设置这个有可能出现您这里formJSON 之后公式计算结果没有渲染的情况。
这个只是针对您的问题进行推测的一个原因。所以,您刚刚的回复的意思是您这边直接fromJSON(),没有进行其他设置了是吗?

之前也在15.1.0的版本,按照您给的json进行了json加载,并未复现您题目中的问题。所以这边建议您,按照这边给的demo,检查下是否进行了其他设置,我们这边不知道导致疏漏了什么原因。
回复 使用道具 举报
天下
注册会员   /  发表于:2022-10-21 15:47:53
10#
Ellia.Duan 发表于 2022-10-20 18:41
您好,关于fromJSON与toJSON 用法,您这边可以参考下学习指南
https://demo.grapecity.com.cn/spreadjs/Sp ...

这个值没有设置,因为已经渲染完成了,二次计算的作用是啥呢。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-20 18:41:17
9#
您好,关于fromJSON与toJSON 用法,您这边可以参考下学习指南
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/workbook/json-serialization/purejs
这里解释了这两个api的使用场景。
其中fromJSON中有一个参数是避免加载后重新计算,这边是否设置了此值,导致没有重新计算公式,导致公式的值没有计算出来。
image.png916915893.png

回复 使用道具 举报
天下
注册会员   /  发表于:2022-10-20 18:27:42
8#
Ellia.Duan 发表于 2022-10-20 18:16
您好,这边在在线表格编辑器中可以正常导入ssjson,并且是有值的。然后导出Excel,也是有值的。测试版本是1 ...

这个数据拿到,显示出来,是否是在完成了spreadFromJSON和tojson之后呢。或者说你们后续是按什么逻辑处理的。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-20 18:16:02
7#
您好,这边在在线表格编辑器中可以正常导入ssjson,并且是有值的。然后导出Excel,也是有值的。测试版本是15.2.2
image.png199069213.png

这边同时测试了 Spread 15.1.0版本,如附件所示,fromJSON后正常有值,下载后也有值。
image.png530046081.png

所以暂未复现您这边的问题,您可以在附件中的demo中 修改代码,直至可以复现问题,在上传。



数据不一致源数据.json

13.42 MB, 下载次数: 64

数据显示不一致问题.html

2.84 KB, 下载次数: 53

回复 使用道具 举报
天下
注册会员   /  发表于:2022-10-20 16:11:55
6#
这个可以吗

数据不一致源数据.zip

315.13 KB, 下载次数: 65

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-20 16:04:50
5#
您好,这边使用15.1.0版本的SpreadJS fromJSON您这边刚刚给出的附件文件,报错,请问您这边是否是正确的json?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部