找回密码
 立即注册

QQ登录

只需一步,快速开始

鹅鹅鹅blue
金牌服务用户   /  发表于:2024-3-14 15:52  /   查看:970  /  回复:15

你好 我们项目中针对spreadjs数据配置了分页功能,在sheet2页面时,页码改变,数据也正常更新。
但在sheet1页面时,点击改变页码,页面就直接跳转到了sheet2页面。
请问有遇到过这种情况吗?
有什么情况会导致这种sheet页自动切换的

image.png590017699.png

15 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-14 15:57:57
沙发
您好,这种情况一般是执行了setActiveSheet或setActiveSheetIndex导致的切换,您可以排查一下相关的接口,看看是不是参数设置的有问题。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
鹅鹅鹅blue
金牌服务用户   /  发表于:2024-3-14 16:09:08
板凳
查看了相关代码,没发现有改动activeSheet的,只是去获取当前的activeSheet。
并且很奇怪的是在sheet2页面时,切换页码时就是正常的,仍然在sheet2页,只是数据进行了更新
回复 使用道具 举报
鹅鹅鹅blue
金牌服务用户   /  发表于:2024-3-14 16:51:42
地板
最终是用open方法结合接口返回的excel内容进行打开excel,有没有可能是接口返回的excel内容不正确,但我看open里面的data是一个ArrayBuffer,无法查看
image.png928547668.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-14 17:34:24
5#
您好,有可能是Excel文件本身默认打开的Sheet就是sheet2,具体的情况这边看不到代码无法判断。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
鹅鹅鹅blue
金牌服务用户   /  发表于:2024-3-14 18:09:02
6#
是的  确实是Excel文件本身默认打开的就是Sheet2。那现在这样的现象有没有建议的解决方法
回复 使用道具 举报
鹅鹅鹅blue
金牌服务用户   /  发表于:2024-3-14 19:32:04
7#
你好 我响应setActiveSheetIndex设置试试,但发现spreadjs实例上没有setActiveSheetIndex方法,如下图
image.png736004028.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-15 09:13:06
8#
这个对象是不是您重新包装过的?我看到您图中的很多API都不是我们公开的API。

image.png548445434.png

setActiveSheetIndex这个接口存在于workBook对象上,建议您再检查一下相关的代码看看是不是对象使用错了。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
鹅鹅鹅blue
金牌服务用户   /  发表于:2024-3-15 09:25:07
9#
本帖最后由 鹅鹅鹅blue 于 2024-3-15 09:35 编辑

再通过getSpread去拿就可以用setActiveSheetIndex了,但是它应该在哪里设置呢。
每次点击换页码的时候会调用createReport接口,在调createReport接口时会重新打开调用spread的open方法。
可能是每次换页码需要重新调接口,重新open时,excel数据的activeSheetIndex是1,所以点击sheet1的换页时,调用的open打开excel,默认是打开的sheet2,所以就跳到了sheet2页面
image.png490014647.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-15 10:58:58
10#
您好,这一块就需要您根据您实际的业务来进行调整了,一般来说会在open完毕后,修改当前workBook对象的activeSheetIndex来调整激活的表单。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部