前端文件预览docx、pptx和xlsx

最近做文件预览,docx、pptx和xlsx的格式,这里记录一下技术要点和参考文章。

1.插件选择: 用docx-preview \ ppt-preview \ exceljs handsontable @handsontable/vue就可以,其他的插件对于excel来说不是很方便,比如微软相关的插件就有点大了,不灵活。至于 ppt-preview ,一般也不用其他插件来做。docx-preview这个倒是有替代性强一些的。

2.要点,需要注意使用async await来读取文件,尤其是exceljs 的导入文件。其他的不用这个倒也能正常读取。一般 type是普通二进制即可,不用特别指明是xls还是doc这种文件类型。

3.handsontable @handsontable/vue在使用时需要用

import { HotTable } from "@handsontable/vue";

import Handsontable from "handsontable";

import "handsontable/dist/handsontable.full.min.css"; 引入样式和两个插件。两个都引入然后注册HotTable components: { HotTable },然后使用

复制代码
<hot-table ref="table" :settings="hotSettings"></hot-table>

其中使用时参数有两种设置方式,建议用这种就可以了。settings是json的,用的时候要注意vue2对json的双向绑定是不做深层次的,需要ref="table"拿到实例,使用hotInstance.updateSettings来手动进行数据更新。

4.handsontable @handsontable/vue有license文字的显示,需要设置关闭licenseKey: "non-commercial-and-evaluation",,我这里是内网开发,手敲的,可能会错误,需要多检查。一般外网开发不会这么惨。

5.插件需要传入dom,用vue2的$efs进行获取,对于docx和pptx的dom,需要用v-show进行控制显隐,用v-if会被销毁,影响绑定。对于xlsx,用v-if进行控制,强制进行重绘。

6.https://ost.51cto.com/posts/13656

https://www.cnblogs.com/jocongmin/p/18656478

https://github.com/handsontable/vue-handsontable-official

https://blog.csdn.net/weixin_52507110/article/details/139528572

https://yr7ywq.smartapps.baidu.com/?_chatQuery=vue使用handsontable\&searchid=9833a33e001e108d\&_chatParams={"agent_id"%3A"c816"%2C"content_build_id"%3A"b98d268"%2C"from"%3A"q2c"%2C"token"%3A"UGlGZHdpN0lzYXNVbS9Gb1JoeVNNWXRmOGI3Q0R2VFNVZlJSWlMzOW9STHY0ZmdiME5MTks3UmZZeEJaQ243OXAxQUVnZEFWR1VlWHR1SXVhMmJqRjZjcGFVZXdGdlltbjRCTXFReXE4b1JVcUVhanZoOHp1RUdNbTZ4MmZTL0k%3D"%2C"chat_no_login"%3Atrue}\&_swebScene=3711000610001000

https://zetcode.com/javascript/handsontable/

https://develop365.gitlab.io/office-viewer/pptx-preview/zh.html#codeBox1

https://501351981.github.io/pptx-preview/#:\~:text=The pure front-end preview library pptx preview for,the introduction of npm mode 纯前端实现的pptx.js文件的预览库,支持npm方式安装,支持ES Module方式引入。 在线演示

相关推荐
Knight_AL6 小时前
Flink 状态管理详细总结:State 分类、Keyed State 实战、Operator State、TTL、状态后端选型
前端·数据库·flink
无心水6 小时前
17、Go协程通关秘籍:主协程等待+多协程顺序执行实战解析
开发语言·前端·后端·算法·golang·go·2025博客之星评选投票
【赫兹威客】浩哥7 小时前
【赫兹威客】框架模板-前端命令行部署教程
前端·vue.js
小妖6667 小时前
javascript 舍去小数(截断小数)取整方法
开发语言·前端·javascript
jay神7 小时前
基于SpringBoot的校园社团活动智能匹配与推荐系统
java·前端·spring boot·后端·毕业设计
一殊酒7 小时前
【前端开发】Vue项目多客户配置自动化方案【一】
前端·vue.js·自动化
切糕师学AI7 小时前
Vue 中 keep-alive 组件的生命周期钩子
前端·vue.js·keep-alive·生命周期·activated·deactivated
晚霞的不甘8 小时前
Flutter for OpenHarmony 布局核心:Row 与 Column 深度解析与实战
android·前端·javascript·flutter
Mr__Miss8 小时前
JMM中的工作内存实际存在吗?
java·前端·spring
huangql5208 小时前
【图文讲解】JavaScript二进制数据处理:从内存到类型化视图
前端