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

QQ登录

只需一步,快速开始

wenyu

初级会员

21

主题

34

帖子

213

积分

初级会员

积分
213
wenyu
初级会员   /  发表于:2019-1-22 16:45  /   查看:3715  /  回复:3
动态设置 sheet页面的index 报错 : Uncaught (in promise) DOMException: Failed to execute 'setStart' on 'Range': The offset 5 is larger than the node's length (2).
var  arry=["a","b"]
for(var index in arry){
  sheets[index] ={ [arry[index]]:{"name":arry[index],"theme":"Office","data":{"dataTable":{"0":{"0":{"value":"qwdqwdqwdqwdqwdqwd","style":{"wordWrap":true}}}},"defaultDataNode":{"style":{"themeFont":"Body"}}},"rowHeaderData":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"colHeaderData":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"rows":[{"size":57}],"selections":{"0":{"row":0,"rowCount":1,"col":0,"colCount":1},"length":1},"index":index} }
}

var json = {"version":"12.0.0","sheets":{sheets}}

spread.fromJSON(json);

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-22 18:14:11
沙发
您这段json拼接有误。

您想实现什么功能?请具体描述一下您的业务场景,

直接拼接json不是个好办法。我们也许可以提供更好的实现方案。
回复 使用道具 举报
wenyu
初级会员   /  发表于:2019-2-1 10:12:11
板凳
KevinChen 发表于 2019-1-22 18:14
您这段json拼接有误。

您想实现什么功能?请具体描述一下您的业务场景,

我们接口返回的数据是这样的 data:{["name":"张三","age":"12"],["name":"李四","age":"16"],["name":"王五","age":"18"]},我想把他拼接成上面的json格式 直接 fromJSON,并且要支持多个sheet页之间的引用,请问有什么好的解决方案,还有保存的时候也要按照  data:{["name":"张三","age":"12"],["name":"李四","age":"16"],["name":"王五","age":"18"]} 这样的json格式保存到数据库,接口现在改不了。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-1 10:56:20
地板
您好,您这个需求,正常的实现逻辑是,初始化一个spread实例,然后绑定数据源,

再toJSON导出成json对象,然后序列化成json字符串。直接拼接是不行的。

示例代码如下:

  1. // 创建一个不渲染到页面的spread实例
  2. var spread = new GC.Spread.Sheets.Workbook();
  3. // 获取sheet
  4. var sheet = spread.getActiveSheet();
  5. // 绑定数据源
  6. sheet.setDataSource(dataSource);
  7. // 导出json
  8. var json = spread.toJSON({includeBindingSource: true});
  9. // 转为json字符串
  10. var jsonStr = JSON.stringify(json);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部