tuqunfu 发表于 2021-12-20 09:52:30

13.0.0隐藏列显示(SJS-11326)

本帖最后由 Lynn.Dou 于 2021-12-21 10:11 编辑

excel在线上隐藏的列,导出excel文件,把左侧折叠打开的时候,隐藏列也会显示出来。

Lynn.Dou 发表于 2021-12-20 11:41:15

您好,
“excel在线上隐藏的列”
指的是在SpreadJS设置隐藏列吗?
“把左侧折叠打开的时候,隐藏列也会显示出来。”
这里的折叠指的具体是什么?是分组列按钮吗?
综上,请直接提供相关的ssjson文件,这边在SpreadJS中实际测试下。

注:如何提供ssjson文件:
1、使用spread.toJSON()导出json
2、新建txt文件,修改后缀为 .ssjson
3、将json粘贴,并将此文件上传。

tuqunfu 发表于 2021-12-20 11:56:21


就是这个红线部分的折叠栏进行操作的时候,隐藏行就会显示,只有设置excel保护,不让折叠才不会显示

tuqunfu 发表于 2021-12-20 12:02:27

json文件

Lynn.Dou 发表于 2021-12-20 16:49:27

您提供的ssjson文件中存在反斜杠"\",无法正常导入sjs中。

这边尝试使用JSON.parse()进行调整,但因数据较大而浏览器崩溃。
所以,为更快复现您的问题,请提供可正常导入ssjson,步骤如下:
1、新建空txt文件,修改后缀名为.ssjson
2、如下图复制json,粘贴至ssjson文件中并上传。


tuqunfu 发表于 2021-12-20 16:55:21

json文件

Lynn.Dou 发表于 2021-12-20 18:06:12

这边在Excel中实际测试了下,您描述的问题:在展开分组按钮时,已经隐藏的行会取消隐藏,属于Excel自身的设计。如下方动图所示:

所以,您在SJS中设置的隐藏行导出到Excel本地时会出现此问题,这属于Excel产品设计,SJS无法控制。

在这一点,SJS与Excel有所不同,表现为:
在展开分组按钮时,已经隐藏的行不会取消隐藏。
针对这一现象,这边会反馈研发进一步调研,看是否能与Excel保持一致。

tuqunfu 发表于 2021-12-20 18:15:57

好的,谢谢

Lynn.Dou 发表于 2021-12-21 09:14:11

您客气了,本贴先做保留处理,有进展会在本贴沟通。

Lynn.Dou 发表于 2021-12-30 17:25:02

更新进展:
此问题属于产品设计,也是与Excel 的差异:

对于Excel:
1、Excel 的隐藏行/列并不是真正的隐藏行/列,而是将大小调整为 0了,并且可以通过拖拽改变行高。
2、Excel 展开分组按钮后,它改变了用户的”隐藏行“行为,将行高0恢复为原有的行高。

对于SpreadJS :
1、SpreadJS 隐藏行/列是真正的隐藏行/列,一旦隐藏,最终用户将无法再次通过 UI 调整行/列的大小。
2、作为控件产品,SJS认为用户的行为应该由用户自己控制(而不应该由控件来改变),所以会尽量保留客户的行为和数据。
综上,这属于产品设计。

如果您想与Excel行为保持一致,可以监听 RangeGroupStateChanged 事件,然后根据自己的业务逻辑调整行高。

页: [1]
查看完整版本: 13.0.0隐藏列显示(SJS-11326)