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

QQ登录

只需一步,快速开始

Kosen
金牌服务用户   /  发表于:2025-4-9 20:34  /   查看:124  /  回复:7
版本:spreadJs17@latest

我使用spreadJs的api生成表格,绑定数据后调用save,再次open后重新设置表格更少一点的列,表头数据更新不符合预期。

Snipaste_2025-04-09_20-26-52.png443789672.png
headers: ['测试1', '测试2', '测试3', '测试4', '测试5']
通过 save 再 open 后:

Snipaste_2025-04-09_20-27-01.png460195006.png
headers: ['foo', 'bar']
上一次的后面san表头没有被清除掉

复现demo:https://jscodemine.grapecity.com/sample/1ReLSHrKpkqUKt3KknD0sg/

7 个回复

倒序浏览
Matthew.Xue
超级版主   /  发表于:2025-4-10 10:33:15
沙发
您好,久等了,这属于正常的现象,改变表格的区域并不会清空原来表格位置的数据,所以会造成这种现象。
我在您的demo基础上做了一些修改,原理是通过对比前后表格区域的变化,拿到旧区域中没有和新区域重合的部分,并对这部分的数据进行清空:
image.png150336608.png
您可以查看并测试一下。
回复 使用道具 举报
Kosen
金牌服务用户   /  发表于:2025-4-10 12:46:12
板凳
这种方式可以解决问题,但我发现如果不使用save后的sjs文件,我更新表格是不会出现上述问题的。
我看数据发现save后会写入data.dataTable这个值,当它存在的情况下似乎就有上述更新表格表头脱离表格的现象发生。
image.png356324767.png
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-4-10 13:46:51
地板
Kosen 发表于 2025-4-10 12:46
这种方式可以解决问题,但我发现如果不使用save后的sjs文件,我更新表格是不会出现上述问题的。
我看数据 ...

我测试过后发现的确如此。
并且SpreadJS的表现与Excel是一致的,在Excel中,插入表格后直接缩小表格区域,表头的文字会消失;但是如果关闭该文件,重新打开后再缩小区域,表头文字就会保留下来。
SpreadJS应该是为了和Excel保持一致才这样设计的。
回复 使用道具 举报
Kosen
金牌服务用户   /  发表于:2025-4-10 13:59:31
5#
好的吧
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-4-10 14:13:11
6#

那您还有其他没有解决的问题吗,没有的话这边就先结贴啦,新问题请发新帖哦
回复 使用道具 举报
Kosen
金牌服务用户   /  发表于:2025-4-11 14:08:53
7#
这个问题可以结贴了,谢谢
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-4-11 14:15:28
8#
Kosen 发表于 2025-4-11 14:08
这个问题可以结贴了,谢谢

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