找回密码
 立即注册

QQ登录

只需一步,快速开始

bakefish

金牌服务用户

2

主题

11

帖子

53

积分

金牌服务用户

积分
53
最新发帖
bakefish
金牌服务用户   /  发表于:2021-11-12 10:43  /   查看:2804  /  回复:7
100金币
附件中的Excel一共有三行数据,加上图片共26行
image.png875494689.png
导入spreadjs后,会被扩展到100万行
image.png39970702.png

我们的需求是spreadjs导入excel的时候,尽量减少sheet的大小,优先保证数据区,如果一定要考虑格式,那么可不可以给我们一个导入选项,让我们选择可以不考虑格式,因为很多所谓的格式问题,用户压根不知道

导入过多空白行列.zip (341.73 KB, 下载次数: 298)

最佳答案

查看完整内容

这边在你提供的excel文件中,发现对应的行数就是到百万多行。因为excel是没有行列数的一个边界限制,在excel中保存后,会记录有多少行列。我们也是根据这个属性去读,因此读出来有百万+的行数。建议你重新调整该表单,或者参考附件的表单。

7 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-12 10:43:57
来自 2#
这边在你提供的excel文件中,发现对应的行数就是到百万多行。因为excel是没有行列数的一个边界限制,在excel中保存后,会记录有多少行列。我们也是根据这个属性去读,因此读出来有百万+的行数。建议你重新调整该表单,或者参考附件的表单。

row.xlsx

53.85 KB, 下载次数: 306

回复 使用道具 举报
bakefish
金牌服务用户   /  发表于:2021-11-12 17:48:44
3#
Derrick.Jiao 发表于 2021-11-12 15:08
这边在你提供的excel文件中,发现对应的行数就是到百万多行。因为excel是没有行列数的一个边界限制,在exce ...

版主,你好

我们的操作场景是,用户自行上传excel,我们转为ssjson,之后,系统上个各类功能基于这个json做其他操作。
所以,我们无法在早期人工干预用户的xlsx文件,只有在上传后,做处理。

现在,问题正如我们看到的,真正有意义的数据只有26行,但是,excel里面识别的是100万,传到spreadjs也是100万,我想知道,spreadjs是依据什么来判断数据区的,有没有数据和格式之分,能不能,可以选择按照数据来判断有效区域,而不是格式?

谢谢
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-12 18:08:03
4#
bakefish 发表于 2021-11-12 17:48
版主,你好

我们的操作场景是,用户自行上传excel,我们转为ssjson,之后,系统上个各类功能基于这个j ...

在前端通过spreadjs无法判断。SpreadJS获取excel文件里面行数后,再根据这个行数去渲染,并不是根据内容的多少去渲染。因此,最根本就在于这个excel文件。用户调整excel文件之后,前端SpreadJS并不知道哪些内容应该删除或者保留。
回复 使用道具 举报
bakefish
金牌服务用户   /  发表于:2021-11-12 20:26:56
5#
Derrick.Jiao 发表于 2021-11-12 18:08
在前端通过spreadjs无法判断。SpreadJS获取excel文件里面行数后,再根据这个行数去渲染,并不是根据内容 ...

明白

那麻烦问一下,有没有判断有效数据区域的api,最好能够区分数据和格式。

我计划直接将sheet的行数设置为有效数据区行数,清除掉多余的行,这样是否可行?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-15 09:16:21
6#
bakefish 发表于 2021-11-12 20:26
明白

那麻烦问一下,有没有判断有效数据区域的api,最好能够区分数据和格式。

在SpreadJS上只能通过遍历表单上所有的行列,写双层循环用getValue(i,j)去判断单元格是否有值,有值则记录下来,判断最后一个有值的单元格则为有效区域的边界。

如果使用GcExcel,我们有getUsedRange获取使用的区域就像这个例子
https://demo.grapecity.com.cn/do ... tworksheetusedrange
回复 使用道具 举报
bakefish
金牌服务用户   /  发表于:2021-11-16 11:25:35
7#
收到
这个方法太费时间了,我们自己再想想办法吧

谢谢了
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-16 12:17:08
8#
bakefish 发表于 2021-11-16 11:25
收到
这个方法太费时间了,我们自己再想想办法吧

不用客气,有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部