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

QQ登录

只需一步,快速开始

一博科技

中级会员

54

主题

153

帖子

607

积分

中级会员

积分
607
一博科技
中级会员   /  发表于:2022-5-30 16:33  /   查看:4259  /  回复:14
1金币
问题:如题,Excel文件打开显示正常,表格行整行,底部不存在空行,但是用在线表格导入之后,底部有上百万的空行,请问这种是什么问题

附件如下:


wKgyH2KMPSiAdULoAAW9OPt9ivY50.xlsx

428.62 KB, 阅读权限: 100, 下载次数: 3

附件

最佳答案

查看完整内容

这个目前通过spreadjs暂时没有什么办法,因为spreadjs解析出来后,行数就是100W了,即使再通过下面的代码把异常区域的条件格式删掉,也没有办法再将行数还原回去了, 所有下面的代码只能做一下参考,可以通过条件来判断其中的条件规则是否存在异常区域,然后提示用户在excel中进行修改后再导入spreadjs

14 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-30 16:33:21
来自 4#
这个目前通过spreadjs暂时没有什么办法,因为spreadjs解析出来后,行数就是100W了,即使再通过下面的代码把异常区域的条件格式删掉,也没有办法再将行数还原回去了,

所有下面的代码只能做一下参考,可以通过条件来判断其中的条件规则是否存在异常区域,然后提示用户在excel中进行修改后再导入spreadjs


  1. sheet.conditionalFormats.getRules().forEach((rule)=>{
  2.     var ranges=rule.ranges();
  3.     ranges.forEach((range)=>{
  4.         if(range.row>sheet.getLastNonNullRow||range.rowCount>100000){
  5.             console.log(range);
  6.             sheet.conditionalFormats.removeRule(rule);
  7.             
  8.         }
  9.         
  10.     })

  11. })
复制代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-30 17:00:11
2#
问题的原因在于这个文件设置的条件格式区域到了上百万行,这两个“$B$162: $B$1048576”的区域删除后再导入就正常了

image.png456237182.png
回复 使用道具 举报
一博科技
中级会员   /  发表于:2022-5-30 17:06:28
3#
Richard.Ma 发表于 2022-5-30 17:00
问题的原因在于这个文件设置的条件格式区域到了上百万行,这两个“$B$162: $B$1048576”的区域删除后再导入 ...

有没有什么办法把空的条件格式干掉的呢,因为是客户的文件,所以我们没法强制要求使用我们提供的demo
回复 使用道具 举报
一博科技
中级会员   /  发表于:2022-5-30 18:03:41
5#
Richard.Ma 发表于 2022-5-30 17:49
这个目前通过spreadjs暂时没有什么办法,因为spreadjs解析出来后,行数就是100W了,即使再通过下面的代码把 ...

也就是说能删除指定行至结尾的规则,但是空行依然存在吗?如果速度能提升也是可以的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-30 18:25:59
6#
空行已经存在了,所以再去删除规则空行也不会自动消除

那么另一个办法是把这些空行通过代码删掉,上面的代码执行完后,后面再加上一句,这样就可以了
  1. sheet.deleteRows(sheet.getLastNonNullRow()+1,sheet.getRowCount()-sheet.getLastNonNullRow())
复制代码
回复 使用道具 举报
一博科技
中级会员   /  发表于:2022-5-31 08:33:30
7#
Richard.Ma 发表于 2022-5-30 18:25
空行已经存在了,所以再去删除规则空行也不会自动消除

那么另一个办法是把这些空行通过代码删掉,上面的 ...

明白,谢谢了
回复 使用道具 举报
一博科技
中级会员   /  发表于:2022-5-31 09:19:11
8#
Richard.Ma 发表于 2022-5-30 17:49
这个目前通过spreadjs暂时没有什么办法,因为spreadjs解析出来后,行数就是100W了,即使再通过下面的代码把 ...

sheet.conditionalFormats.getRules()是个空的 :[]
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-31 09:20:25
9#
不客气
回复 使用道具 举报
一博科技
中级会员   /  发表于:2022-5-31 09:39:00
10#

sheet.conditionalFormats.getRules()是个空的 :[]
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部