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

QQ登录

只需一步,快速开始

innerwang

高级会员

121

主题

482

帖子

1259

积分

高级会员

积分
1259
innerwang
高级会员   /  发表于:2025-5-28 15:11  /   查看:186  /  回复:15
1金币
本帖最后由 Joestar.Xu 于 2025-6-10 11:34 编辑


调研编号:SJS-30009


如何根据数据获取报表的总高度: 需要不滚动页面就可以看全所有数据,含分组折叠等等所有样式。



场景如下:
绘制报表的容器高度是固定的,但是报表的内容会被刷新,刷新后数据会发生变化,比如之前可能有 20行,刷新后变为了30行。

当 20行时刚好不需要纵向滚动报表即可以看完数据,当 30行时则需要滚动才可以看完数据。

此时期望导入30行数据时,能动态调整容器高度,以确保不滚动就可以看全数据。

有没有什么方式可以准确的获取高度?

最佳答案

查看完整内容

您好,您可以参考下图来实现: sheet.getCellRect(0,0,-1,-1);

15 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-5-28 15:11:05
来自 14#
您好,您可以参考下图来实现:





sheet.getCellRect(0,0,-1,-1);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-5-28 16:05:31
2#
了解您这边的需求,这边确认一下是否有相关方案,后续有进展会在本帖中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-5-29 09:36:09
3#
您好,一般来说直接遍历所有的行,将行高累加起来即可获取整个表单的高度。
回复 使用道具 举报
innerwang
高级会员   /  发表于:2025-5-29 09:38:45
4#
Joestar.Xu 发表于 2025-5-29 09:36
您好,一般来说直接遍历所有的行,将行高累加起来即可获取整个表单的高度。

这个高度没有考虑列分组折叠器所占的高度吧?

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-5-29 11:28:49
5#
当某一行被分组折叠时,这个行的高度将和页面显示一样为0,在重新展开后将能获取到实际显示的值。
回复 使用道具 举报
innerwang
高级会员   /  发表于:2025-5-29 14:48:07
6#
Joestar.Xu 发表于 2025-5-29 11:28
当某一行被分组折叠时,这个行的高度将和页面显示一样为0,在重新展开后将能获取到实际显示的值。

你好,您可能是误会了,我指的是这个区域的高度


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-5-30 10:16:09
7#
您好,这里没有相关的API可以获取到高度,目前能想到的一个方案是通过sheet.columnOutlines.getMaxLevel()接口获取分组的数量,然后在原来遍历的基础上再增加上分组数量*单个分组高度(高度需要您自行去测试),即可获取最终的高度。
回复 使用道具 举报
innerwang
高级会员   /  发表于:2025-5-30 12:04:25
8#
Joestar.Xu 发表于 2025-5-30 10:16
您好,这里没有相关的API可以获取到高度,目前能想到的一个方案是通过sheet.columnOutlines.getMaxLevel() ...

所以单个分组高度实际不是一个固定值吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-5-30 17:26:13
9#
innerwang 发表于 2025-5-30 12:04
所以单个分组高度实际不是一个固定值吗?

您好,这部分涉及源码,我们不太确定具体的绘制逻辑是什么样子的,这也是为什么我在之前的回复中告知您需要自行测试高度的值。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部