找回密码
 立即注册

QQ登录

只需一步,快速开始

Todd@rinsys

金牌服务用户

2

主题

7

帖子

21

积分

金牌服务用户

积分
21
最新发帖
Todd@rinsys
金牌服务用户   /  发表于:2023-2-27 12:44  /   查看:1436  /  回复:6
本帖最后由 Lynn.Dou 于 2023-2-28 10:40 编辑

VUE版本 15.2.4
对同一个工作簿的两个工作表进行绑定数据源,
  1. const source = new GC.Spread.Sheets.Bindings.CellBindingSource(sourceData);
  2.       this.spread.getSheetFromName('CAPEX').setDataSource(source);
复制代码

  1. const source = new GC.Spread.Sheets.Bindings.CellBindingSource(sourceData);
  2.       this.spread.getSheetFromName('INFO').setDataSource(source);
复制代码

sourceData 均为独立的 object 对象。

绑定成功后,通过
  1. const sheet = this.spread.getSheetFromName("INFO")
  2.       const source = sheet.getDataSource().getSource()
复制代码

  1. const sheet = this.spread.getSheetFromName("CAPEX")
  2.       const source = this.spread.getSheetFromName("CAPEX").getDataSource().getSource()
复制代码
获取数据的时候,如果之前鼠标切换过这两个sheet,会有较高的概率报错,但是没找到100%复现的办法。
image.png561980590.png

报错的位置:
image.png617510985.png

请问这个是什么道理?



6 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-2-27 15:30:23
沙发
您好,请您上传下可以复现您问题的vue项目
回复 使用道具 举报
Todd@rinsys
金牌服务用户   /  发表于:2023-2-27 15:39:48
板凳
Ellia.Duan 发表于 2023-2-27 15:30
您好,请您上传下可以复现您问题的vue项目

感谢回复,项目太复杂了,剥离出来估计要花费不少时间。
如果我只setDataSource一个就没事儿,绑定多个就会有这种情况。
能否提供一些排查的思路?
感谢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-2-27 15:53:22
地板
获取数据的时候,最好用 spread.getActiveSheet()此方法获取下当前活动的sheet ,进而获取dataSouce
回复 使用道具 举报
Todd@rinsys
金牌服务用户   /  发表于:2023-2-27 17:39:24
5#
Ellia.Duan 发表于 2023-2-27 15:53
获取数据的时候,最好用 spread.getActiveSheet()此方法获取下当前活动的sheet ,进而获取dataSouce

我也想获取非 active的sheet 因为可能数据也被改过了。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-2-27 18:05:30
6#
Todd@rinsys 发表于 2023-2-27 17:39
我也想获取非 active的sheet 因为可能数据也被改过了。

没太理解您的意思 。您是想说通过楼上给出的方案也会出现您的问题是吗?如果是的话,这边没有更好建议了,如果想要解决问题,建议还是整理一份可以复现问题的dmeo上来。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-3-6 18:55:13
7#
请问您的问题解决了吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部