13.0.0隐藏列显示(SJS-11326)
本帖最后由 Lynn.Dou 于 2021-12-21 10:11 编辑excel在线上隐藏的列,导出excel文件,把左侧折叠打开的时候,隐藏列也会显示出来。
您好,
“excel在线上隐藏的列”
指的是在SpreadJS设置隐藏列吗?
“把左侧折叠打开的时候,隐藏列也会显示出来。”
这里的折叠指的具体是什么?是分组列按钮吗?
综上,请直接提供相关的ssjson文件,这边在SpreadJS中实际测试下。
注:如何提供ssjson文件:
1、使用spread.toJSON()导出json
2、新建txt文件,修改后缀为 .ssjson
3、将json粘贴,并将此文件上传。
就是这个红线部分的折叠栏进行操作的时候,隐藏行就会显示,只有设置excel保护,不让折叠才不会显示 json文件
您提供的ssjson文件中存在反斜杠"\",无法正常导入sjs中。
这边尝试使用JSON.parse()进行调整,但因数据较大而浏览器崩溃。
所以,为更快复现您的问题,请提供可正常导入ssjson,步骤如下:
1、新建空txt文件,修改后缀名为.ssjson
2、如下图复制json,粘贴至ssjson文件中并上传。
json文件
这边在Excel中实际测试了下,您描述的问题:在展开分组按钮时,已经隐藏的行会取消隐藏,属于Excel自身的设计。如下方动图所示:
所以,您在SJS中设置的隐藏行导出到Excel本地时会出现此问题,这属于Excel产品设计,SJS无法控制。
在这一点,SJS与Excel有所不同,表现为:
在展开分组按钮时,已经隐藏的行不会取消隐藏。
针对这一现象,这边会反馈研发进一步调研,看是否能与Excel保持一致。
好的,谢谢 您客气了,本贴先做保留处理,有进展会在本贴沟通。 更新进展:
此问题属于产品设计,也是与Excel 的差异:
对于Excel:
1、Excel 的隐藏行/列并不是真正的隐藏行/列,而是将大小调整为 0了,并且可以通过拖拽改变行高。
2、Excel 展开分组按钮后,它改变了用户的”隐藏行“行为,将行高0恢复为原有的行高。
对于SpreadJS :
1、SpreadJS 隐藏行/列是真正的隐藏行/列,一旦隐藏,最终用户将无法再次通过 UI 调整行/列的大小。
2、作为控件产品,SJS认为用户的行为应该由用户自己控制(而不应该由控件来改变),所以会尽量保留客户的行为和数据。
综上,这属于产品设计。
如果您想与Excel行为保持一致,可以监听 RangeGroupStateChanged 事件,然后根据自己的业务逻辑调整行高。
页:
[1]