找回密码
 立即注册

QQ登录

只需一步,快速开始

Wilson.Zhang
超级版主   /  发表于:6 天前
11#
中智达- 发表于 2024-11-19 11:17
先获取到json   然后 json.stringify(json)  转成字符串存到后端

根据您提供的代码,读取文件后似乎未将文件内容显示在sheet中。就当前的信息而言,我仍不清楚您通过JSON.stringify()将序列化结果字符串化后将其保存为了什么文件类型。我提供一个demo给您,您在其中补充下您的导入导出逻辑,确保在demo中能够复现您的问题。我需要尽可能多地了解您的业务场景,这样才能有效分析问题原因。

导入问题demo.html

5.52 KB, 下载次数: 4

回复 使用道具 举报
中智达-
注册会员   /  发表于:6 天前
12#
Wilson.Zhang 发表于 2024-11-19 16:47
根据您提供的代码,读取文件后似乎未将文件内容显示在sheet中。就当前的信息而言,我仍不清楚您通过JSON. ...

你这个是14.2.0是没问题的   你把版本换成12.2.3  就错了
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:5 天前
13#
中智达- 发表于 2024-11-19 17:15
你这个是14.2.0是没问题的   你把版本换成12.2.3  就错了

根据之前的沟通了解到您在使用14版本的过程中遇到的问题,之后便在14版本下的14.2.0版本测验试图复现您的问题,未能复现。如果您在14.2.0使用不复现相关问题,且您当前使用的是比14.2.0更早的版本,那您可以选择升级到14.2.0版本使用。
回复 使用道具 举报
中智达-
注册会员   /  发表于:5 天前
14#
Wilson.Zhang 发表于 2024-11-20 10:01
根据之前的沟通了解到您在使用14版本的过程中遇到的问题,之后便在14版本下的14.2.0版本测验试图复现您的 ...

抱歉 我说错了   是14.2.3
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:5 天前
15#
中智达- 发表于 2024-11-20 10:12
抱歉 我说错了   是14.2.3

那您导入的文件类型是ssjson吗?或者是其他什么类型的文件?根据之前的沟通,了解到您在导出时通过JSON.stringify()将序列化数据转为了字符串,那么字符串又封装在了怎样的文件类型中?导入和导出的文件类型应该是一致的,您之前提供的是一个包含了文件json内容的js文件,我理解这个应该不是您导出的文件类型,所以有必要跟您确认下这些细节。您可以在11楼的demo中尝试复现问题,添加能够复现问题的导入导出逻辑代码,同时附带上您复现问题时使用的导出文件,我就可以据此来分析了。
回复 使用道具 举报
中智达-
注册会员   /  发表于:5 天前
16#
这个里面是我的操作

新建文件夹.zip

2.09 MB, 下载次数: 2

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:5 天前
17#
中智达- 发表于 2024-11-20 16:10
这个里面是我的操作

在14.2.0和14.2.3版本均测试了,情况如下:

1. 在14.2.0版本,使用demo可正常导入“上传文件0.xlsx”和“上传文件1.xlsx”。如下动图所示:
14.2.0测试.gif
2. 在14.2.3版本,使用demo可正常导入“上传文件1.xlsx”,导入“上传文件0.xlsx”时浏览器页面显示崩溃。如下动图所示:
14.2.3测试.gif

随后在最新17.1.9版本测试,使用demo可正常导入”上传文件0.xlsx“和”上传文件1.xlsx“。如下动图所示:
17.1.9测试.gif


了解了您的操作方式后,我将spread.fromJSON()并入open方法的成功回调函数中,如下图所示:
1732095274074.png69609068.png

附上demo供您参考。

根据之前沟通中了解到的信息,请确认下”上传文件0.xlsx“是否为xls类型强转得到的xlsx类型文件,不排除在14.2.3版本无法导入由xls文件强转得到的xlsx文件。您可以避免通过强转将xls文件转换为xlsx文件,或者考虑升级版本后使用。

我不太理解您在问题描述中提到导出的是json数据,而在演示时又使用了xlsx文件,是因为您在导出时将序列化json数据保存为xlsx格式了吗?因为一致不了解您的自定义导出逻辑,所以需要跟您确认下。

导入问题demo.html

5.69 KB, 下载次数: 3

回复 使用道具 举报
中智达-
注册会员   /  发表于:4 天前
18#
Wilson.Zhang 发表于 2024-11-20 17:40
在14.2.0和14.2.3版本均测试了,情况如下:

1. 在14.2.0版本,使用demo可正常导入“上传文件0.xlsx” ...

我上面说了 导入的时候是将json对象序列化成字符串保存到数据库中   所以就没有什么xlsx文件类型什么的 就是一段str 查看的时候就是将数据库中保存的str反序列化成对象然后formJSON了 并没有所说的导出
既然能复现出来问题  我就是希望你们能帮我想想为什么会出现这个情况  上面我也提到了 那只是两种有可能出问题的情况 具体我也不太清楚  至于是不是强转的文件这个是不太清楚的    希望你们能帮我看看这个到底是什么原因导致的
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:4 天前
19#
中智达- 发表于 2024-11-21 08:53
我上面说了 导入的时候是将json对象序列化成字符串保存到数据库中   所以就没有什么xlsx文件类型什么的  ...

了解了,保存字符串,导入字符串,在14.2.3版本出现问题。我帮您调研下先,需要一些时间,之后会及时向您同步结论,请您耐心等候。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:3 天前
20#
您好!以您提供的包含在js文件中的json为依据,我帮您调研得到的结果是:文件中的json数据中sheetCount值为2,意味着包含了两张sheet,但是仅有index=1,即第二张sheet,而没有第一张sheet对应的index=0,这个不一致的信息便是导入异常的原因。
image-20241121-110352.png953805236.png

面对这样的数据,假设在程序中将您提供的js数据通过aJson变量引用,解决方法如下:
1. 在14.2.3版本,设置如下代码,改造json数据:
  1. aJson.activeSheetIndex = 0;
  2. aJson.sheetCount = 1;
  3. aJson.sheets.sheet1.index = 0;
  4. var keys = Object.keys(aJson.sheets.sheet1.data.dataTable);
  5. aJson.sheets.sheet1.rowCount = +keys[keys.length-1];
复制代码

2. 在17.1.9版本中,同样改造json数据,参考如下代码:
  1. aJson.activeSheetIndex = 0;
  2. aJson.sheetCount = 1;
  3. aJson.sheets.sheet1.index = 0;
  4. spread.fromJSON(aJson);
复制代码

主要需要补齐在json数据中缺失的内容,修改后效果如下动图所示:
反序列化正常.gif

附上demo,供您参考:

反序列化异常.html

2.15 MB, 下载次数: 0

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部