当前位置: 首页 > news >正文

vue 实现在线预览Excel-LuckyExcel/LuckySheet实现方案

一、准备工作

1. npm安装 luckyexcel
npm i -D luckyexcel
2.引入luckysheet

注意:引入luckysheet,只能通过CDN或者直接引入静态资源的形式,不能npm install。

个人建议直接下载资源引入。我给你们提供一个下载资源的地址:

https://gitee.com/ichiva_admin/luckysheet-saved-in-recovery/tree/master/src/main/resources/static/module/luckysheel-2.1.13

直接放进工程的public文件夹下,在index.html中引入一下资源:

<link rel="stylesheet" href="./plugins/css/pluginsCss.css"/>
<link rel="stylesheet" href="./plugins/plugins .css"/>
<link rel="stylesheet" href="./css/luckysheet .css"/>
<link rel="stylesheet" href="./assets/iconfont/iconfont.css"/>
<script src="./plugins/js/plugin.js"></script>
<script src="./luckysheet.umd.js"></script>

注意:自行整理下路径,不要错了。

准备工作完毕了。

二、预览Excel

由于后台给到的数据,就是二进制数据。因为他们导出和预览实际上用的是同一个接口。那么,我们需要将二进制数据解析为文件对象,通过luckyexcel的方法转变为json对象,然后通过luckysheet显示出来。

1.准备显示dom
<div id="luckysheet" style="width: 800px; height: 600px;"> </div><!-- 需要注意两点
1.id 要记住,下边初始化excel会使用容器id;
2.容器的宽高要设置好,否则显示不出来;-->
2.请求接口
import axios from 'axios';// 预览 请求excel二进制数据
axios.get({url: '你的后台请求地址',params: '参数',methods: 'post',responseType: 'blob' // 注意  这一步很关键  必须注明请求的数据类型是blob
})
3.解析数据
import LuckyExcel from "luckyexcel";// 假设我们的请求接口时  getExcelData// 以下方法是具体处理逻辑async getExcel () {try {const res = await getExcelData('你的参数');const files = new window.File([res], '你的文件名称', {type:"application/vnd.ms-excel;charset=utf-8"});LuckyExcel.transformExcelToLucky(files, exportJson => {if (!exportJson.sheets || exportJson.sheets.length === 0) {ElMessage.warning('读取excel文件内容失败');return;}// 调用初始化方法this.initExcel(exportJson, '你的文件名称');}) } catch (err) {}
},// 初始化对象
initExcel (json, title) {this.$nextTick(() => {// 先销毁 避免反复创建luckysheet.destory();// 创建表单lucky.create({container: '你的渲染容器的id', // 比如 <div id="渲染容器的id" style=""></div>lang: 'zh', // 中文title, // 标题data: json.sheets,// excel的sheet数据})})
},

如上两步,就可以显示项目预览excel的需求了。

http://www.lryc.cn/news/221298.html

相关文章:

  • AIGPT重大升级,界面重新设计,功能更加饱满,用户体验升级
  • Web逆向-mtgsig1.2简单分析
  • 【蓝桥杯省赛真题41】Scratch电脑开关机 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解
  • 第10章 Java常用类
  • Android 11 getPackageManager().getPackageInfo 返回null
  • 4、数据结构
  • qt5.15.2+vs2019源码调试开发环境搭建
  • 【数据结构】单链表之--无头单向非循环链表
  • 网络中使用最多的图片格式有哪些
  • 个人常用Linux命令
  • 数据结构——常见简答题汇总
  • josef约瑟低电压继电器 DY-110 10-109V 辅助电源·DC110V 嵌入式面板安装
  • Visual Studio Code将中文写入变量时,中文老是乱码问题
  • 各省市30米分辨率DEM数据,推荐下载!
  • 操作系统引论(一)
  • 2023-11-7 OpenAI 45 分钟发布会:整理发布了哪些内容更新
  • 索引和事务
  • 全场景数实融合聚焦北京——2023(第六届)行业信息技术应用创新大会隆重召开
  • 深入理解强化学习——多臂赌博机:乐观初始值
  • [黑马程序员Pandas教程]——DataFrame数据的增删改操作
  • 【服务器】Java连接redis及使用Java操作redis、使用场景
  • Spark 基础知识点
  • 动作捕捉系统通过SDK与LabVIEW通信
  • 【PTE-day02 sqlmap操作】
  • 2021年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 2023.10.18 信息学日志
  • Modbus封装库(Com,tcp,udp一应俱全)
  • 专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家
  • C++常用格式化输出转换
  • 如何使用 Loadgen 来简化 HTTP API 请求的集成测试