找回密码
 立即注册

QQ登录

只需一步,快速开始

hsReport
金牌服务用户   /  发表于:2022-8-15 15:12  /   查看:2638  /  回复:6
本帖最后由 Lynn.Dou 于 2022-8-22 16:02 编辑

从14.1.3升级到15.1.3后发现,针对包含整列数据验证的excel,在打开时变成了104857行,有大量无数据的空白行,导致这种excel渲染和操作都比较卡顿,咨询了回复如下:
image.png844980163.png
可否有办法在渲染前手动限制渲染行数以提升响应速度

6 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-15 16:51:52
沙发
本帖最后由 Lynn.Dou 于 2022-8-15 16:53 编辑

您好,
这边测试,直接使用微软Excel新建一个excel文件并设置整列数据验证,
再导入至SJS时,会自动根据实际非空(或选中单元格以上)区域显示行数。
不会出现数据验证区域为104857行的问题。
您参考附件文件,导入下方地址实际测试下。
https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html

结合测试结果来看,另个帖子的表述不大完整,现补充如下:如果是Excel自己新建的excel文件,即时整列设置数据验证,在导入至SJS时会根据文件内容自动优化数据验证区域行数。
您本贴提到的excel文件是POI产生的吗?
这边以另一个帖子的文件(POI生成)进行测试,可以复现您描述的问题。
从测试结果来看,该问题是与此文件有关的,猜测属于POI的问题,而SJS在设计方向上并不是与POI兼容。

所以,如果仅对此excel文件而言,您可以尝试下监听FileLoading事件,
在事件内部获加载文件的json数据,并修改rowCount,此时就会根据新的json(sheet行数)进行加载了。示例代码如下:
  1. designer.bind(GC.Spread.Sheets.Designer.Events.FileLoading, (event, data)=>{
  2.     var json = data.data;
  3.     if(json.sheets["同一控制人下境外机构信息"].rowCount == 1048576 ) {
  4.         json.sheets["同一控制人下境外机构信息"].rowCount = 20
  5.     }
  6. });
复制代码
以上思路仅供参考,具体判断逻辑需要根据您结合您的实际业务实现。


回复 使用道具 举报
hsReport
金牌服务用户   /  发表于:2022-8-15 17:00:33
板凳
Lynn.Dou 发表于 2022-8-15 16:51
您好,
这边测试,直接使用微软Excel新建一个excel文件并设置整列数据验证,
再导入至SJS时,会自动根据 ...

文件不是poi生成的呢,是office编辑的,可以看下附件

ID_050001.xlsx

16.4 KB, 下载次数: 132

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-15 17:20:17
地板
信息收到,这边使用WPS office已复现此问题,目前SJS是与Excel保持一致的,如上个回答所述示例。
所以针对WPS,已将此问题作为需求记录下来进一步调研,如果后续计划添加此功能会在贴中通知您。
您可以参考上个回答中的方案,通过监听事件实现您的需求。
回复 使用道具 举报
hsReport
金牌服务用户   /  发表于:2022-8-18 11:03:52
5#
Lynn.Dou 发表于 2022-8-15 17:20
信息收到,这边使用WPS office已复现此问题,目前SJS是与Excel保持一致的,如上个回答所述示例。
所以针对 ...

你好,之前表达有误,这个excel不是通过wps制作,是excel软件直接制作的,会有这个空白行问题
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-18 12:15:23
6#
本帖最后由 Lynn.Dou 于 2022-8-22 16:05 编辑

如1楼回复所示,这边在Excel新建文件测试设置整列验证,导入官网在线表格编辑器时,未显示100多万行。您可以使用附件文件实际测试下。
对于您提供的文件这边也做了测试,复现了您描述的问题,
出现这种差异的原因目前不能直接判断,这边需要针对此文件进一步调研下,待有进展会第一时间在贴中通知您。
本贴先做保留处理。
-----------------------------------
补充:
与您电话沟通了解了您的业务场景,并经测试,对于Excel创建的文件,设置整列数据验证后,
再清除第一二行的数据验证,此时导入至SpreadJS后,会显示1048576行。
已将此问题记录下来进一步调研,待有进展会在贴中同步您。
您可以先参考上述回复中的方案解决此问题。

数据验证.xlsx

11.75 KB, 下载次数: 131

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-25 18:29:13
7#
更新进展:
经调研确认,目前该问题属于产品设计,当数据验证range非整列时,会依据range信息显示行数。
建议您参考上述workaround方案来解决。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部