两个excel文件保存到json到数据库前端回显有问题
本帖最后由 Wilson.Zhang 于 2024-11-28 10:45 编辑产品:SpreadJS
版本:14.2.3
调研编号:SJS-27422
Last Review:2024-11-28
当前进展:根据用户提供的文件分析后给出原因及解决方案。
后端保存到数据库的json在前端回显的时候导致浏览器崩溃
您好!由于您提到了后端和前端,需要确认下”后端“是否使用GcExcel的Workbook:save()接口将文件导出为ssjson文件吗?
如果是的话,导出方式不是正确的导出ssjson方式,应该通过FileOutputStream将文件导出为ssjson文件,参考如下代码:
也可以使用sjs为序列化格式,参考如下代码:
上述两种方式导出的文件均可在前端SpreadJS中正常导入。如果未使用GcExcel,需要您提供下使用的产品版本号、保存的具体文件类型和保存方式。
Wilson.Zhang 发表于 2024-11-15 10:41
您好!由于您提到了后端和前端,需要确认下”后端“是否使用GcExcel的Workbook:save()接口将文件导出为ssjs ...
14版本json格式保存到数据库 后端没有用GcExcel的Workbook:save()所有的调用接口的方式都是前端用的是当我拿到json格式后渲染数据的的时候浏览器直接卡死崩溃(猜测的原因有可能是错误的文件是由于原文件本来是.xls格式后强制转化成.xlsx格式也有可能是因为excel是07版本的 )这是两个猜测 中智达- 发表于 2024-11-15 11:02
14版本json格式保存到数据库 后端没有用GcExcel的Workbook:save()所有的调用接口的方式都是前端用的...
如下动图所示,我将您提供的Excel文件导入14.2.0版本的Designer后通过Workbook:toJSON()将Workbook整体序列化,之后再在另一个Designer通过Workbook:fromJSON()反序列化,可以正常反序列化。
我还在最新的17.1.9版本测试,也正常。如果我的操作方式有误,需要您详细介绍下情况。
另外,根据您提供的可能的原因,您也可以排查下,比如使用非强转的xlsx文件测试排查。
您好!请问下您这个问题解决的如何了?如果还未解决,可以详细介绍下您的使用场景,咱们继续讨论下。 Wilson.Zhang 发表于 2024-11-18 16:29
您好!请问下您这个问题解决的如何了?如果还未解决,可以详细介绍下您的使用场景,咱们继续讨论下。
后端只保存了json格式当前端拿到json按照 sheet.formJson(json)得时候崩溃了应该是这个地方 但是浏览器直接崩溃 所以也看不到输出信息 中智达- 发表于 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.index > 1) delete json.sheets
})
console.log(json, 'json')
spreadJson = json
})
toJson()和这里的json返回的结果一样嘛 这个是转化后的json对象 我直接用这个区fromJson()得时候就出现问题了
中智达- 发表于 2024-11-18 18:23
这个是转化后的json对象 我直接用这个区fromJson()得时候就出现问题了
注意到您提供的代码片段了,请问您是通过GC.Spread.Excel.IO自定义导入和导出的吗?可否提供下这部分的详细代码,我需要了解下您的具体导出方式和导入方式,这样便于基于相同的操作方式分析讨论。 Wilson.Zhang 发表于 2024-11-19 11:01
注意到您提供的代码片段了,请问您是通过GC.Spread.Excel.IO自定义导入和导出的吗?可否提供下这部分的详 ...
先获取到json 然后 json.stringify(json)转成字符串存到后端