找回密码
 立即注册

QQ登录

只需一步,快速开始

vagetable

注册会员

7

主题

12

帖子

53

积分

注册会员

积分
53

[已处理] spreadJS数据绑定

vagetable
注册会员   /  发表于:2021-8-23 15:57  /   查看:2660  /  回复:5
1金币
用的是vue3+vite组件版
使用spreaddesigner做了绑定到单元格的数据,然后在显示的时候只用了spreadjs,就是纯下面显示用的表格版
按照表格封装组件抛出的是workbook对象
对workbook对象使用Bindings CellBindingSource方法报错
是要怎么用?
var workbook = new GC.Spread.Sheets.Workbook(ssHost.value);这个是按照文档封装抛出的workbook对象


//在使用的页面初始化
let workbook = undefined;
let workbookInitialized=(wb)=>{
    workbook = wb
    }

//导入后台传来的数据报错,说workbook没有这个方法
workbook.Bindings.CellBindingSource(dataSource)




另外在文档里找到精确到列的自动绑定数据方法,有没有适用于交叉表的?还是只能用精确到单元格的?


最佳答案

查看完整内容

这个父页面指的是什么? 您在初始化designer的时候,需要 import GC from "@grapecity/spread-sheets"; 以此获取 GC对象, 同样的,在父组件使用时,也需要 import GC from "@grapecity/spread-sheets"; 拿到GC对象后来进行后续操作。 附件有vue3的示例demo,您可以参考下,点击 数据绑定 按钮进行测试。

5 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-23 15:57:39
来自 4#
这个父页面指的是什么?
您在初始化designer的时候,需要 import GC from "@grapecity/spread-sheets";
以此获取 GC对象,
同样的,在父组件使用时,也需要 import GC from "@grapecity/spread-sheets";
拿到GC对象后来进行后续操作。
附件有vue3的示例demo,您可以参考下,点击 数据绑定 按钮进行测试。 image.png514819030.png

first-spreadjs-vue3.zip

42.98 KB, 下载次数: 163

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-23 16:24:34
2#
您好,
数据绑定的使用方式用使用框架没有太大关系,在获取到workbook(或称为spread),使用相关接口进行数据绑定即可。
数据绑定包括3种形式,表单级别、单元格级别、表格绑定。
您代码中使用的 CellBindingSource 指的是单元格级别数据绑定。
正确使用方式如下图所示: image.png628931274.png
学习指南地址链接:https://demo.grapecity.com.cn/sp ... evel-binding/purejs
同理,您也可以在学习指南中学习其他两种数据绑定形式,
也可以在论坛搜索数据绑定,参考其他资料。
示例:
image.png860388488.png
关于接口的使用说明,您可以参考API文档。

https://demo.grapecity.com.cn/spreadjs/help/api/
回复 使用道具 举报
vagetable
注册会员   /  发表于:2021-8-23 16:27:48
3#
本帖最后由 vagetable 于 2021-8-23 16:35 编辑
Lynn.Dou 发表于 2021-8-23 16:24
您好,
数据绑定的使用方式用使用框架没有太大关系,在获取到workbook(或称为spread),使用相关接口进行数 ...

vue3文档在使用纯表格的时候只抛出了workbook,也就是说我要用绑定的话,也要把new GC.Spread.Sheets.Workbook这里的前面的new GC.Spread.Sheets获取到的对象也抛出,才能在父页面用咯?    let workbook = undefined;

    let workbookInitialized=(wb)=>{
    workbook = wb
    }  //初始化工作表

    const dataSource={
      Jan:5
    }
    const getSource= () =>{
      const source= new GC.Spread.Sheets.Bindings.CellBindingSource(dataSource);
      workbook.setDataSource(source)
      workbook.resumePaint();
    }

这里运行还是报错workbook.setDataSource is not a function
回复 使用道具 举报
vagetable
注册会员   /  发表于:2021-8-24 14:29:07
5#
Lynn.Dou 发表于 2021-8-23 17:33
这个父页面指的是什么?
您在初始化designer的时候,需要 import GC from "@grapecity/spread-sheets";
...

那么设定了绑定的字段,将这个表作为模板导出。然后在纯表格导入这个模板然后setDataSource,成功显示了,但是不能再修改表格里填入的值了,不管在前端怎么修改,导出获取sheetjson的时候单元格的值在datatable的二维数组内仍然为空。这个是设计成这样,不能修改的模式吗?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-24 17:32:19
6#
在使用toJSON方法时,设置 includeBindingSource 为true,表示允许导出数据源。如下图:
image.png77554930.png
具体请参考学习指南:

https://demo.grapecity.com.cn/sp ... erialization/purejs
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部