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

一、准备工作

1. npm安装 luckyexcel
bash 复制代码
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中引入一下资源:

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
html 复制代码
<div id="luckysheet" style="width: 800px; height: 600px;"> </div>

<!-- 

需要注意两点
1.id 要记住,下边初始化excel会使用容器id;
2.容器的宽高要设置好,否则显示不出来;

 -->
2.请求接口
javascript 复制代码
import axios from 'axios';

// 预览 请求excel二进制数据
axios.get({
    url: '你的后台请求地址',
    params: '参数',
    methods: 'post',
    responseType: 'blob' // 注意  这一步很关键  必须注明请求的数据类型是blob
})
3.解析数据
javascript 复制代码
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的需求了。

相关推荐
LaughingZhu4 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫4 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
小鹏linux5 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水6 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger6 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)6 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态7 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态7 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart7 小时前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter
放下华子我只抽RuiKe57 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架