找回密码
 立即注册

QQ登录

只需一步,快速开始

中智达-

注册会员

7

主题

42

帖子

141

积分

注册会员

积分
141
中智达-
注册会员   /  发表于:2024-11-15 09:37  /   查看:196  /  回复:19
1金币
本帖最后由 Wilson.Zhang 于 2024-11-21 16:58 编辑


产品:SpreadJS
版本:14.2.3
调研编号:SJS-27422

后端保存到数据库的json  在前端回显的时候导致浏览器崩溃

上传文件.zip

46.75 KB, 下载次数: 10

19 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-11-15 10:41:44
沙发
您好!由于您提到了后端和前端,需要确认下”后端“是否使用GcExcel的Workbook:save()接口将文件导出为ssjson文件吗?
如果是的话,导出方式不是正确的导出ssjson方式,应该通过FileOutputStream将文件导出为ssjson文件,参考如下代码:
GcExcel导出ssjson.png301459044.png

也可以使用sjs为序列化格式,参考如下代码:
GcExcel导出sjs.png52176512.png

上述两种方式导出的文件均可在前端SpreadJS中正常导入。如果未使用GcExcel,需要您提供下使用的产品版本号、保存的具体文件类型和保存方式。

回复 使用道具 举报
中智达-
注册会员   /  发表于:2024-11-15 11:02:03
板凳
Wilson.Zhang 发表于 2024-11-15 10:41
您好!由于您提到了后端和前端,需要确认下”后端“是否使用GcExcel的Workbook:save()接口将文件导出为ssjs ...

14版本  json格式保存到数据库 后端没有用GcExcel的Workbook:save()  所有的调用接口的方式都是前端用的  是当我拿到json格式后渲染数据的的时候浏览器直接卡死崩溃  (猜测的原因有可能是错误的文件是由于原文件本来是.xls格式后强制转化成.xlsx格式  也有可能是因为excel是07版本的 )  这是两个猜测
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-11-15 15:41:08
地板
中智达- 发表于 2024-11-15 11:02
14版本  json格式保存到数据库 后端没有用GcExcel的Workbook:save()  所有的调用接口的方式都是前端用的  ...

如下动图所示,我将您提供的Excel文件导入14.2.0版本的Designer后通过Workbook:toJSON()将Workbook整体序列化,之后再在另一个Designer通过Workbook:fromJSON()反序列化,可以正常反序列化。
文件0.gif

文件1.gif

我还在最新的17.1.9版本测试,也正常。如果我的操作方式有误,需要您详细介绍下情况。
另外,根据您提供的可能的原因,您也可以排查下,比如使用非强转的xlsx文件测试排查。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:7 天前
5#
您好!请问下您这个问题解决的如何了?如果还未解决,可以详细介绍下您的使用场景,咱们继续讨论下。
回复 使用道具 举报
中智达-
注册会员   /  发表于:7 天前
6#
Wilson.Zhang 发表于 2024-11-18 16:29
您好!请问下您这个问题解决的如何了?如果还未解决,可以详细介绍下您的使用场景,咱们继续讨论下。

后端只保存了json格式  当前端拿到json按照 sheet.formJson(json)得时候崩溃了  应该是这个地方 但是浏览器直接崩溃 所以也看不到输出信息
回复 使用道具 举报
中智达-
注册会员   /  发表于:7 天前
7#
中智达- 发表于 2024-11-18 16:53
后端只保存了json格式  当前端拿到json按照 sheet.formJson(json)得时候崩溃了  应该是这个地方 但是浏览 ...

excelIo.open(file, function (json) {
        console.log(file)
        Object.keys(json.sheets).forEach((key) => {
          if (json.sheets[key].index > 1) delete json.sheets[key]
        })
        console.log(json, 'json')
        spreadJson = json
      })
toJson()和这里的json返回的结果一样嘛
回复 使用道具 举报
中智达-
注册会员   /  发表于:7 天前
8#
这个是转化后的json对象 我直接用这个区fromJson()得时候就出现问题了

jsonA.zip

24.64 KB, 下载次数: 1

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:6 天前
9#
中智达- 发表于 2024-11-18 18:23
这个是转化后的json对象 我直接用这个区fromJson()得时候就出现问题了

注意到您提供的代码片段了,请问您是通过GC.Spread.Excel.IO自定义导入和导出的吗?可否提供下这部分的详细代码,我需要了解下您的具体导出方式和导入方式,这样便于基于相同的操作方式分析讨论。
回复 使用道具 举报
中智达-
注册会员   /  发表于:6 天前
10#
Wilson.Zhang 发表于 2024-11-19 11:01
注意到您提供的代码片段了,请问您是通过GC.Spread.Excel.IO自定义导入和导出的吗?可否提供下这部分的详 ...

先获取到json   然后 json.stringify(json)  转成字符串存到后端
Snipaste_2024-11-19_11-14-07.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部