今天继续测试MrDoc,虽然写这个文的时候我的MrDoc的文还没整完。。
但是今天这个问题是一个比较独立的模块,就单独说吧。

文章目录

  • 问题:导入缓慢
  • 省流:修改Luckysheet的初始化参数
  • 寻找:MrDoc使用的表格技术
  • 破案:初始化参数搞的鬼
  • 缓慢的具体原因

问题:导入缓慢

我导入一个我的excel文件至系统的时候速度非常慢。
一开始我以为是建立索引很慢,看后台日志,这个索引的时间是0点几秒就完成了。

后来发现,应该是在上传数据的时候太慢了。


一个800K的文件上传后竟然变成了5.1兆,怎么想都觉得奇怪。

省流:修改Luckysheet的初始化参数

找到create_doc里面luckysheet.create的地方。

添加两个参数:

PS:照理来说这两个参数应该按照表格的大小来设置,但我发现,当你的数据表行列数比你设定的大的时候,他会自动增加格子。也就是说,其实这个参数应该叫minRowminColumn应该会贴切一些。如果你想要设定一个最小的范围,就设定为row: 1,column: 1,就行了,但是那样很小的表格会比较难看,建议还是可以设定一个最小值。

如果你有兴趣看看我是怎么找到的,可以往下看看,可能可以对你学习MrDoc的源码会有一些小帮助。阅读时间预计5分钟。

寻找:MrDoc使用的表格技术

找到代码中的导入按钮,发现他的id是import-excel

在整个目录搜索,


使用这个id的整个目录和自由两个地方,很快锁定到了文件加载的地方。


代码中出现了两个关键词,这两个关键词正好在static的目录底下有看到:

由此,我们知道了MrDoc使用了两个库来完成在线表格的导入:
1.Luckysheet
2.Luckyexcel

通过简单的搜索得知:
Luckysheet是非常强大的表格在线编辑库,Luckyexcel是大佬开发的配套库,用于excel的导入工作。

仔细看上传的负载里面有很多的null,同时,每次导入文件后,表格的长度都变成了莫名其妙的84行,固定是84行。

我一开始以为问题出现在Luckyexcel里面,是不是这个库识别的数据范围不对导致把空行都读了进来呢?


咱们跟到具体代码位置发现,这个函数就是做了一个读数,然后调用回调的工作,具体他是如何读取的,咱们不管,咱们直接在回调的地方打断点。


可以明显看到,返回的时候,数据只有三个格子。

和我的测试文件是吻合的。


回调出来的地方也和上面的输出吻合。证明问题不是出在Luckyexcel,而是Luckysheet这个库。

破案:初始化参数搞的鬼


将断点往下打一些,打到create下方,发现,create结束后出现了一个新的属性data而且正好是一个84的数列,那应该是在create的时候做了什么,导致这个data变成了84。

在github的Luckysheet项目中中搜索了一下84,其中有一个参数,一看就有问题了:

名字如此吻合,应该就是这个的问题了。

寻找Luckysheet的文档,

初始化的参数里面有这么两个参数,那应该只要修改这两个参数就行了。

加上这两个参数后,刚刚5M的文件被压缩了一半,虽然还是很大,但是是因为这个表格中设置的表格样式确实比较复杂,能减少近一半已经不错了。

缓慢的具体原因

本地存储就算文件大道5M应该也不至于时间这么长,查看问题应该出现在sqlite的写入,后续继续解决。

MrDoc的excel文件导入(Luckysheet)空白行问题问题相关推荐

  1. excel 导入mysql_如何将Excel文件导入MySQL数据库

    本文实例为大家分享了Excel文件导入MySQL数据库的方法,供大家参考,具体内容如下 1.简介 本博客给大家分享一个实用的小技能,我们在使用数据库时常常需要将所需的Excel数据添加进去,如果按照传 ...

  2. 将txt文件和excel文件导入SQL2000数据库

    将txt文件和excel文件导入SQL2000数据库 在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入SQL200 ...

  3. MVC3学习:将excel文件导入到sql server数据库

    思路: 1.将excel文件导入到服务器中. 2.读取excel文件,转换成dataset. 3.循环将dataset数据插入到数据库中. 本例子使用的表格为一个友情链接表F_Link(LinkId, ...

  4. excel数据库_将excel文件导入mysql数据库教程(PHP实现)

    点击蓝字关注我们!每天获取最新的编程小知识! 源 / php中文网      源 / www.php.cn 在这篇文章中,我将给大家介绍如何使用PHP将excel文件导入mysql数据库.有时候我们需 ...

  5. 利用js-xlsx.js插件实现Excel文件导入并解析Excel数据成json数据格式

    <!--本文转载于网络,有太多一样的文章,不知道原作者是哪位了,就不注明出处了.这里记载下来,用于自己的学习借鉴--><!DOCTYPE html><html lang= ...

  6. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  7. php将excel导入mysql,PHP实现将EXCEL文件导入到MYSQL

    最近因项目需求,要实现将excel文件通过php页面导入mysql数据库中.在网上搜了很多这方面的资料,发现都是将excel文件另存为csv文件,然后从csv文件导入.这里介绍一个直接将excel文件 ...

  8. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  9. php导入qq数据txt代码,/谁有能都实现将excel文件导入到数据中,并在php网页上显示的源码啊,有的发送1091932879@qq.com,谢谢!...

    PHP网页怎么导入Excel的数据 参码如下: // 1.引用ExcelReader类文 require_once 'Excel/reader.php'; // 2.实例化读取Excel类 $data ...

最新文章

  1. 【Java面试题】54 去掉一个Vector集合中重复的元素
  2. idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,
  3. 一次关于DNS服务器的故障排错记录——RNDC故障
  4. EOS (3)系统特点
  5. Lucene进阶操作,单字段、多字段和布尔搜索
  6. 【2019icpc南京站网络赛 - H】Holy Grail(最短路,spfa判负环)
  7. 如何查看自己运行ubuntu是32位还是64位
  8. (转)Arcgis for JS之Cluster聚类分析的实现
  9. 新氧科技成为互联网医疗美容第一股 首日股价疯狂上涨32%
  10. c语言迷宫求解毕业设计,毕业设计(论文)-基于Windows平台C语言实现迷宫游戏的设计.doc...
  11. 自定义键盘组件_WEB组件终极开发手册:让玩家没了鼠标也能操作
  12. 服务器端提交form
  13. 技术实操|Apache Spark 内存管理详解(上篇)
  14. 2834: 小凯的书架
  15. 【BSP视频教程】STM32H7视频教程第3期:整体捋顺STM32H7的HAL库和LL库的框架,再配合寄存器造轮子找到更适合自己的玩法(2022-01-21)
  16. 小红书用户画像分析_用户画像分析会成为第一品牌竞争力吗?
  17. 钉钉邮箱登录入口_阿里企业邮箱发信失败 报错:554reject by content_「阿里云企业邮箱_阿里企业邮箱」指定经销商热线:400-855...
  18. 笔记-最优控制理论1
  19. mysql删除列前判断_MySQL中,删除列的SQL语句是( )
  20. Python实现发送邮件(实现单发/群发邮件验证码)

热门文章

  1. Ubuntu16.04下搭建Eclipse C++开发环境
  2. SCORM标准课件中SCO的制作方法
  3. 电脑如何正确卸载软件?
  4. React + nodemailer + koa-jwt 实现登录注册邮箱验证
  5. CC云点播 接口示例
  6. android 翻牌动画,Android实现寻觅红桃A的翻牌游戏
  7. GridView中CommandArgument如何传多个参数
  8. ORACLE授权/同义词/序列语句
  9. [Flask_sqlalchemy] KeyError: 检索时对ChoiceType的类型限制
  10. 2022低压电工考试模拟100题模拟考试平台操作