找回密码
 立即注册

QQ登录

只需一步,快速开始

园园

中级会员

79

主题

224

帖子

593

积分

中级会员

积分
593

微信认证勋章

园园
中级会员   /  发表于:2017-4-26 17:25  /   查看:3243  /  回复:3
本帖最后由 ClarkPan 于 2017-4-26 18:19 编辑

spread.fromJSON是读取一个文件的json数据,我现在想实现的是打开一个文件,打开后在浏览器里修改文件内容时,json文件里的内容也跟着修改。
最终实现的目的是:在页面上,左侧显示的文件1里的sheet1,右侧显示的是文件1里的sheet2,且sheet2中有sheet1中的公式,如果是同一个文件打开两次,修改左侧sheet1里的文件时,右侧显示的sheet2中的内容也跟着修改。
但如果用fromJSON的方式,相当于左右两侧的spread都是新建的,只是初始化时把文件内容加载过来了,后期再修改页面内容时和文件1没什么关系了。不知道这种同一个文件打开两次的方式可以实现吗?

我这个文件是json文件,如果是Excel文件有open方法,但是加载会变慢,所以存的文件是json。

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-26 18:08:36
沙发
这样的话只能sheet1同时绑定GC.Spread.Sheets.Events.CellChanged和GC.Spread.Sheets.Events.RangeChanged,在触发这两个事件的任何一个时用spread.toJSON( { includeBindingSource: true } )或去json对象,然后将该json对象同步到json文件中,然后用spread.fromJSON去更新sheet2。这样有一点要注意,如果sheet2中绑定过任何事件,需在更新后重新绑定,因为用了spread后,里面的sheet对象就不是之前的对象了。如果是绑定到spread上的事件则不用重新绑定。
目前还没有别的更好的办法。
回复 使用道具 举报
园园
中级会员   /  发表于:2017-4-27 09:11:13
板凳
ClarkPan 发表于 2017-4-26 18:08
这样的话只能sheet1同时绑定GC.Spread.Sheets.Events.CellChanged和GC.Spread.Sheets.Events.RangeChanged ...

谢谢啦!!我现在的解决方式是,左侧获得两个sheet,sheet1和sheet2,我把sheet2隐藏了,这样sheet1改变数据,sheet2也跟着变;右侧去获得sheet2中数据,看上去就像左侧sheet1变了,右侧就变了。
虽然问题解决了,但总觉得思路是偏的,正常的思路应该是打开文件,同步修改应该是对的呢。没有这个功能就没办法啦~~
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-27 09:16:22
地板
园园 发表于 2017-4-27 09:11
谢谢啦!!我现在的解决方式是,左侧获得两个sheet,sheet1和sheet2,我把sheet2隐藏了,这样sheet1改变 ...

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部