各款Excel、word在线预览工具对比分析以及onlyoffice预览Excel加载时间长的解决方案

对于onlyoffice插件预览慢的问题分析:

研究了一下onlyoffice,得出以下结论!

对于预览慢的问题,原因出在文件类型上,文件类型为低版本xls而非新版xlsx文件,onlyoffice服务器会自动将该文件转换为xlsx文件再进行渲染,耗时慢主要是这个转换的过程很慢,如果使用xlsx文件,就会跳过这一步,直接渲染,速度上肉眼可见的快;

下面视频是展示两个相同数据量的文件,两种不同格式(xls<49MB>、xlsx<经过前面的文件转换后得到大小为19MB的xlsx文件>)下的加载速度

onlyoffice中xlsx与xls文件预览对比

我研究了一下市面上的开源在线预览插件(vue-office、luckysheet),只支持xlsx、docx的预览,
在这里插入图片描述
在这里插入图片描述
像某系统的预览使用到的是officeonline(应该是收费的),还有一个收费的插件是web-office(收费),这些插件也是支持xls这种低版本excel 的预览,officeonline目前我传了一个22兆的xls文件进行预览尝试,显示文件过大,最大支持10MB文件预览
在这里插入图片描述
飞书平台目前的在线文档,下面的截图是上传xls文件,提示是否导入为飞书表格,如果选择否,将只支持查看,选择是将会导入失败,因为飞书表格的编辑不兼容xls格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面导入xlsx格式文件 ,提示与导入xls时不同,此处选择表格,点击导入,能够正常导入成功
在这里插入图片描述在这里插入图片描述

可见,飞书对编辑和查看有不同的兼容性,我们再使用onlyoffice时,它的底层默认要兼容xls和xlsx的编辑,所以直接将xls转换为了xlsx,各种插件有其实现功能的方案,各有优劣

结论:

根据以上论证,中闽环境下使用的预览插件onlyoffice本身不存在加载慢的问题,只是格式兼容性问题

解决方案:

1 未来版本更替时,或者以后的新项目再使用到onlyoffice插件或其他插件,优先在后台异步将用户文件转换为xlsx和docx类型文件,预览时使用该类型文件,下载时让其下载源文件即可(是让其下载源文件还是新版本类型的文件更合适需要产品根据现场调研得出结论)

  • 下载源文件风险:下载的版本是xls或doc版本,版本过低,这将意味着系统中磁盘将存储两份用户文件,一份xls一份xlsx,磁盘空间将多耗费原来的一半(一般xls转换为xlsx类型后磁盘占用将缩小一半左右);
  • 下载新版本文件风险:用户电脑word版本停留于2003及以下版本的office将无法查看(此方案下若后台转换失败不可以将源文件删除,要做好事务控制,否则删掉的文件将是不可逆的)

2 用户尽量使用新版本excel进行数据导入,旧版本excel占用更大的空间,解析也会耗费更多的时间,得不偿失

下面是onlyoffice发现问题并找到解决方案的过程

到onlyoffice的demo里面去尝试就能知道它内部转换是什么规则了
在这里插入图片描述
在这里插入图片描述

这一步会转很久,如果传的是xlsx,直接会跳过这一步,立马完成,然后再在系统中尝试对比同样的文件,发现xls和xlsx的预览果然是相差很大,同理doc和docx也是这样的原理

相关推荐

  1. word、excel、ppt文件office线

    2024-02-08 07:04:02       37 阅读
  2. vue线excel、pdf、word文件

    2024-02-08 07:04:02       28 阅读
  3. js excel/csv

    2024-02-08 07:04:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-08 07:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-08 07:04:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-08 07:04:02       82 阅读
  4. Python语言-面向对象

    2024-02-08 07:04:02       91 阅读

热门阅读

  1. [缓存] - Redis

    2024-02-08 07:04:02       53 阅读
  2. SpringCache缓存快速实现注解

    2024-02-08 07:04:02       47 阅读
  3. Vscode SSH使用云服务器访问内网主机

    2024-02-08 07:04:02       51 阅读
  4. reactive 与 ref 的区别

    2024-02-08 07:04:02       54 阅读
  5. 项目中常用的一些数据库及缓存

    2024-02-08 07:04:02       47 阅读
  6. 设计模式(前端)

    2024-02-08 07:04:02       43 阅读
  7. Android 自定义BaseFragment

    2024-02-08 07:04:02       47 阅读
  8. k8s弃用docker后使用ctr导入镜像

    2024-02-08 07:04:02       44 阅读