请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

jiqimao 讲师达人认证
金牌服务用户   /  发表于:2018-12-4 14:04  /   查看:8114  /  回复:19
我上传一个文件 (见附件)

上传成功后, 我将当前的Workbook 做了toJSON(false) 的操作, 然后, new WorkBook 新建了一个, 使用fromJSON 还原的时候, 就会报错. 见下面截图

image.png36435851.png

下面是我做的操作:

  1. var spread = GC.Spread.Sheets.findControl(document.getElementById('ss'));
  2. var copyWorkbook = new GC.Spread.Sheets.Workbook();
  3.                 var jsonStr = JSON.stringify(spread.toJSON(false));
  4.                 copyWorkbook.fromJSON(JSON.parse(jsonStr));
复制代码



麻烦看下是不是bug, 如果是bug的话, 有没有办法临时解决一下 ?

2018年预约表-武清店v1.1.xlsx

598.78 KB, 阅读权限: 150, 下载次数: 3

19 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-4 16:34:06
沙发
您好,我用11.2.2版本测试了一下,没能重现问题。

如图:

image.png379648742.png

我把我测试用的Demo给您上传到附件中,您参考一下。

Demo运行后先把您上传的Excel导入进来,然后“点击运行”即可。

FromJSON_jiqimao.html

8.25 KB, 下载次数: 320

回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2018-12-4 17:19:27
板凳
哦 我少了一步, 就是我先导入进来的, 然后再做的上面的操作. 见下面的代码. 我导入的func
  1. function importFileFromUrl(importFileUrl) {
  2.         var excelIo = new GC.Spread.Excel.IO();
  3.         var xhr = new XMLHttpRequest();
  4.         xhr.open('GET', importFileUrl, true);
  5.         xhr.responseType = 'blob';
  6.         xhr.onload = function (e) {
  7.                 if (this.status === 200) {
  8.                         // get binary data as a response
  9.                         var blob = this.response;
  10.                         // convert Excel to JSON
  11.                         excelIo.open(blob, function (json) {
  12.                                 var spread = GC.Spread.Sheets.findControl(document.getElementById('ss'));
  13.                                 spread.fromJSON(json);
  14.                                 var copyWorkbook = new GC.Spread.Sheets.Workbook();
  15.                 var jsonStr = JSON.stringify(spread.toJSON(false));
  16.                 copyWorkbook.fromJSON(JSON.parse(jsonStr));
  17.                         }, {});
  18.                 }
  19.         };
  20.         xhr.send();
  21. }
复制代码
你试试这样子会不会重现问题, 而且我在sp12的版本也发生了这样的问题. 麻烦帮我看看哈

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-5 09:37:50
地板
您好,我这边还是没能重现您的问题,如图:

image.png727091369.png

我把我部署的工程打包给您上传到附件,您对比参考一下。

FromJSON_jiqimao.zip

1.63 MB, 下载次数: 505

回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2018-12-6 00:18:41
5#
image.png117797850.png

我这边报错信息中包含这个, 这个是我在线编辑器的源码里面的. 不知道是不是编辑器源码问题呢. 编辑器的源码见下面的截图

image.png461433715.png


回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-6 13:42:45
6#
您好,目前我这边已经重现了问题,

我这边需要分析一下生成的JSON文件,

本帖暂时修改状态为“未处理”,稍后我会在本帖回复您。
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2018-12-6 13:55:32
7#
好的, 重现了就好, 希望能够解决. 现在我们这边的处理方式, 是让客户使用vba将图表删除, 再导入.
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-6 16:09:12
8#
本帖最后由 KevinChen 于 2018-12-6 16:11 编辑

您好,我这边发现只有空图表会导致这个问题,

您的Excel中含有空图表,是否是您业务场景所必须支持的呢?
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2018-12-6 16:24:37
9#
对的, 客户的表格的确是有空的图表. 但这个是客户也不清楚的, 有可能是误操作出来的. 但是这样不能导入了很奇怪. 我之前是用excel的vba删除了客户的空图表, 然后再导入的.

所以, 导入的时候, 你们这边如果遇到空图表的话, 最好能够直接过滤掉, 而不是喷错吧.
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-6 16:26:45
10#
jiqimao 发表于 2018-12-6 16:24
对的, 客户的表格的确是有空的图表. 但这个是客户也不清楚的, 有可能是误操作出来的. 但是这样不能导入了很 ...

对,您的这个逻辑是没错的,这个问题我会提交一个bug,要求研发部门进行修正。

我只是想了解一下关于包含空图表的应用场景。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部