码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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中引入一下资源:

    1. <link rel="stylesheet" href="./plugins/css/pluginsCss.css"/>
    2. <link rel="stylesheet" href="./plugins/plugins .css"/>
    3. <link rel="stylesheet" href="./css/luckysheet .css"/>
    4. <link rel="stylesheet" href="./assets/iconfont/iconfont.css"/>
    5. <script src="./plugins/js/plugin.js">script>
    6. <script src="./luckysheet.umd.js">script>

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

    准备工作完毕了。

    二、预览Excel

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

    1.准备显示dom
    1. <div id="luckysheet" style="width: 800px; height: 600px;"> div>
    2.请求接口
    1. import axios from 'axios';
    2. // 预览 请求excel二进制数据
    3. axios.get({
    4. url: '你的后台请求地址',
    5. params: '参数',
    6. methods: 'post',
    7. responseType: 'blob' // 注意 这一步很关键 必须注明请求的数据类型是blob
    8. })
    3.解析数据
    1. import LuckyExcel from "luckyexcel";
    2. // 假设我们的请求接口时 getExcelData
    3. // 以下方法是具体处理逻辑
    4. async getExcel () {
    5. try {
    6. const res = await getExcelData('你的参数');
    7. const files = new window.File([res], '你的文件名称', {type:"application/vnd.ms-excel;charset=utf-8"});
    8. LuckyExcel.transformExcelToLucky(files, exportJson => {
    9. if (!exportJson.sheets || exportJson.sheets.length === 0) {
    10. ElMessage.warning('读取excel文件内容失败');
    11. return;
    12. }
    13. // 调用初始化方法
    14. this.initExcel(exportJson, '你的文件名称');
    15. })
    16. } catch (err) {
    17. }
    18. },
    19. // 初始化对象
    20. initExcel (json, title) {
    21. this.$nextTick(() => {
    22. // 先销毁 避免反复创建
    23. luckysheet.destory();
    24. // 创建表单
    25. lucky.create({
    26. container: '你的渲染容器的id', // 比如
    27. lang: 'zh', // 中文
    28. title, // 标题
    29. data: json.sheets,// excel的sheet数据
    30. })
    31. })
    32. },

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

  • 相关阅读:
    实现一个todoList可直接操作数据(上移、下移、置顶、置底)
    大数据报告检测到风险等级太高是怎么回事呢?
    U-boot下netconsole实现
    【 构建maven工程时,配置了阿里云的前提下,依旧使用中央仓库下载依赖导致失败的问题!】
    手游上线必须做的事情
    JAVA xml格式转为java对象
    python采集财经数据信息并作可视化~
    编译原理复习—8,9,10章最后一部分
    如何让您的公司内容满足 GDPR 合规性
    链表经典面试题(五)
  • 原文地址:https://blog.csdn.net/jmszl1991/article/details/134249253
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号