找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Huang SpreadJS 开发认证

超级版主

42

主题

3186

帖子

4928

积分

超级版主

Rank: 8Rank: 8

积分
4928

SpreadJS 认证SpreadJS 高级认证

Richard.Huang SpreadJS 开发认证
超级版主   /  发表于:2024-4-26 14:43  /   查看:1152  /  回复:2
背景

有很多用户的实际填报场景是在移动端,例如平板上,业务人员进行填报时如果其实只期望上下滚动着填报,左右滚动会导致填报操作很不舒服,甚至有些情况会导致遗漏内容,那么将填报区域撑满这个SpreadJS的视图区域对这些用户来说很是必要。

如何实现

按照我们期望的,只让填报用户上下滚动页面,以及不允许用户左右移动页面,我们可以按照以下思路实现
1. 通过sheet上的缩放功能,将需要填报的区域恰好缩放到和SpreadJS视图区域齐平的位置
2. 禁止用户左右滚动页面

代码示例

1. 初始化设置缩放
  1. var usedRange = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all);// 获取使用了的区域
  2. // 获取使用区域的最大列宽
  3. var cell = sheet.getCellRect(0, usedRange.col)
  4. var width = cell.x + cell.width;// 计算外部spread的容器的列宽
  5. window.getComputedStyle(spread.getHost())
  6. var maxWidth = parseFloat(window.getComputedStyle(spread.getHost()).width) - 22;// 这个22是一个偏差值,根据业务具体场景修改这个值
  7. var fa = maxWidth / width// 获取应该放大的系数
  8. // 执行缩放
  9. sheet.zoom(fa)
复制代码
2. 禁止用户页面左右滚动
  1. sheet.bind(GC.Spread.Sheets.Events.LeftColumnChanged, function (sender, args) {
  2.     sheet.showColumn(0, GC.Spread.Sheets.HorizontalPosition.left);// 监听到用户左右拖动页面,就立马显示显示最左侧列
  3. });
  4. spread.options.scrollByPixel = true;// 设置成像素滚动避免橡皮筋效果严重
复制代码

完整demo
按照内容区域缩放工作表.html (4.46 KB, 下载次数: 260)

2 个回复

倒序浏览
ab123
注册会员   /  发表于:2024-7-4 10:53:00
沙发
你好 这个方法是不是 14版本用不了
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-4 11:03:47
板凳
您好,在此demo中,用到了getUsedRange这个api ,此API 14版本不支持,建议升级后使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部