找回密码
 立即注册

QQ登录

只需一步,快速开始

CloudJSTI

金牌服务用户

36

主题

98

帖子

332

积分

金牌服务用户

积分
332
CloudJSTI
金牌服务用户   /  发表于:2023-10-17 11:25  /   查看:3459  /  回复:13


模板设计的时候,给单元格绑定了数据源字段,但是获取不到数据源,得到的是个null



get() {
      const spread = this.designer.getWorkbook();
      const sheetCount = spread.getSheetCount();
      // 遍历工作簿中的每个工作表
      let sourceCount = {};
      for (let i = 0; i < sheetCount; i++) {
        // 获取当前工作表
        let sheet = spread.getSheet(i);
        // 使用 name() 方法获取工作表名称
        let sheetName = sheet.name();
        let dataSource = null;
        const dataSourceObject = sheet.getDataSource();
        console.log(dataSourceObject, "dataSourceObject");
        if (
          dataSourceObject !== null &&
          typeof dataSourceObject.getSource === "function"
        ) {
          dataSource = dataSourceObject.getSource();
        } else {
          dataSource = sheet.getDataSource();
        }
        // console.log(dataSource, "dataSource");
        sourceCount[sheetName] = dataSource;
      }
      console.log(sourceCount, "sourceCountsourceCount");
    },



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

13 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 11:45:07
沙发
您好,你这边是想获取数据源信息?还是想要获取绑定的数据源的字段信息?

如果是想获取数据源信息的话,需要先设置数据源信息,即setDataSource接口,然后才能获取数据源的信息。

如果是想要获取绑定的数据源的字段信息,目前没有特别高效的办法,您可以参考这个链接中的内容来获取字段的信息(https://gcdn.grapecity.com.cn/showtopic-82960-1-550.html)。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
CloudJSTI
金牌服务用户   /  发表于:2023-10-17 13:38:57
板凳
Joestar.Xu 发表于 2023-10-17 11:45
您好,你这边是想获取数据源信息?还是想要获取绑定的数据源的字段信息?

如果是想获取数据源信息的话, ...

单元格绑定的话,那就必须根据单元格坐标去拿了啊,那样岂不是很复杂
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 13:53:07
地板
还可以在UI上保存数据的模板结构,如图所示:



导出的结果如下:



具体的代码可以参考:
let designerBindingPathSchema = designer.getData("updatedTreeNode") || designer.getData("oldTreeNodeFromJson");

参考链接:https://gcdn.grapecity.com.cn/fo ... read&tid=132963

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
CloudJSTI
金牌服务用户   /  发表于:2023-10-17 14:02:58
5#
Joestar.Xu 发表于 2023-10-17 13:53
还可以在UI上保存数据的模板结构,如图所示:

这个是获取到的那个数据源字段面板上的所有字段,我其实只是 想要当前excel绑定了的字段
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 14:14:09
6#
您这边为什么要获取到这个绑定的字段呢?具体的业务需求是什么?
回复 使用道具 举报
CloudJSTI
金牌服务用户   /  发表于:2023-10-17 14:25:55
7#
Joestar.Xu 发表于 2023-10-17 14:14
您这边为什么要获取到这个绑定的字段呢?具体的业务需求是什么?

后面这个绑定的字段需要提供给后端,后端会吧这些值计算好,返回给前端,我们这边数据源面板的字段总共有9000多个,所以这块必须把当前sheet使用了哪些给拿出来
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 16:43:44
8#
您好,“后端会把这些值计算好”,是指在GcExcel中去进行计算吗?

通常来说,您在前端将这个spread对象的json传输到后端,在后端中执行setDatasource绑定数据后是可以直接计算的,计算完毕后,再将这个spread对象的json传输到前端,由前端来展示,这样也能实现您的需求。
回复 使用道具 举报
CloudJSTI
金牌服务用户   /  发表于:2023-10-17 16:48:27
9#
Joestar.Xu 发表于 2023-10-17 16:43
您好,“后端会把这些值计算好”,是指在GcExcel中去进行计算吗?

通常来说,您在前端将这个spread对象 ...

后端不知道当前excel用了哪些字段,所以setDatasource的时候,不知道set哪些
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 17:53:30
10#
您好,猜测您对我们的GcExcel的数据绑定功能不是很了解,GcExcel和SpreadJS的数据绑定功能是兼容的,在SpreadJS中,对模板绑定好字段后,您可以直接将这个模板导出为json,然后GcExcel去加载;GcExcel会自动处理模板的绑定关系,无需再额外操作,只需要像SpreadJS一样执行setDatasource就可以了。

如果我的描述有误,请您再详细描述一下您的疑问,或者留下您的联系方式,这边和您电话沟通一下。

参考链接:https://demo.grapecity.com.cn/do ... va/demos/jsonsource
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部