vue + Luckysheet 实现在线Excel表格操作

news2024/11/27 17:36:42

需求千千万,又是难熬的一天!

效果图:

Luckysheet官网网站:快速上手 | Luckysheet文档

1、引入(两种)

第一种CDN引入

在项目中的 public ---> index.html 中添加代码,如下:

<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/css/pluginsCss.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/plugins.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/css/luckysheet.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/assets/iconfont/iconfont.css' />
<script src="https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/js/plugin.js"></script>
<script src="https://cdn.jsdelivr.net/npm/luckysheet/dist/luckysheet.umd.js"></script>

第二种本地静态引入

在项目中的 public ---> luckysheet(没有就新建) 中添加代码,如下:

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

获取静态资源方法:

  1. 从官网下载源码:Luckysheet: 🚀Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。
  2. 下载后运行 npm install ,安装所需依赖
  3. 安装完成后可以运行 npm run dev 启动项目看运行是否正常
  4. 使用 npm run build 命令打包项目
  5. 找到打包后的文件夹,复制文件夹内所有文件(除 index.html 以外)如下图
  6. 将复制的文件放到 public ---> luckysheet(没有就新建)文件夹中

 第5步图

我已上传下载好的资源,如有需要可直接下载:

资源地址:Luckysheet 本地引用的静态资源

2、页面使用

在需要的页面添加如下代码:

HTML部分

 <div id="luckysheet" class="luckysheet-content"></div>

JS部分

export default {
    mounted() {
        this.init();
    },
    methods: {
        init() {
            var options = {
                container: "luckysheet", // 设定DOM容器的id
                title: "Luckysheet Demo", // 设定表格名称
                lang: "zh", // 设定表格语言
                plugins: ["chart"],
                data: [
                    {
                        name: "测试Excel表", //工作表名称
                        color: "#eee333", //工作表(工作表名称底部边框线)颜色
                        index: 0, //工作表索引(新增一个工作表时该值是一个随机字符串)
                        status: 1, //激活状态
                        order: 0, //工作表的下标
                        hide: 0, //是否隐藏
                        row: 36, //行数
                        column: 30, //列数
                        defaultRowHeight: 28, //自定义行高,单位px
                        defaultColWidth: 100, //自定义列宽,单位px
                        celldata: [], //初始化使用的单元格数据,r代表行,c代表列,v代表该单元格的值,最后展示的是value1,value2
                        config: {
                            merge: {}, //合并单元格
                            rowlen: {}, //表格行高
                            columnlen: {}, //表格列宽
                            rowhidden: {}, //隐藏行
                            colhidden: {}, //隐藏列
                            borderInfo: {}, //边框
                            authority: {}, //工作表保护
                        },
                        scrollLeft: 0, //左右滚动条位置
                        scrollTop: 0, //上下滚动条位置
                        luckysheet_select_save: [], //选中的区域
                        calcChain: [], //公式链
                        isPivotTable: false, //是否数据透视表
                        pivotTable: {}, //数据透视表设置
                        filter_select: {}, //筛选范围
                        filter: null, //筛选配置
                        luckysheet_alternateformat_save: [], //交替颜色
                        luckysheet_alternateformat_save_modelCustom: [], //自定义交替颜色
                        luckysheet_conditionformat_save: {}, //条件格式
                        frozen: {}, //冻结行列配置
                        chart: [], //图表配置
                        zoomRatio: 1, // 缩放比例
                        image: [], //图片
                        showGridLines: 1, //是否显示网格线
                        dataVerification: {}, //数据验证配置
                    },
                ],
                showtoolbar: true,// 默认工具栏都不显示
                showtoolbarConfig: {
                    undoRedo: false, //撤销重做,注意撤消重做是两个按钮,由这一个配置决定显示还是隐藏
                    paintFormat: true, //格式刷
                    currencyFormat: false, //货币格式
                    percentageFormat: false, //百分比格式
                    numberDecrease: false, // '减少小数位数'
                    numberIncrease: false, // '增加小数位数
                    moreFormats: false, // '更多格式'
                    font: true, // '字体'
                    fontSize: true, // '字号大小'
                    bold: true, // '粗体 (Ctrl+B)'
                    italic: true, // '斜体 (Ctrl+I)'
                    strikethrough: true, // '删除线 (Alt+Shift+5)'
                    underline: true, // '下划线 (Alt+Shift+6)'
                    textColor: true, // '文本颜色'
                    fillColor: true, // '单元格颜色'
                    border: false, // '边框'
                    mergeCell: false, // '合并单元格'
                    horizontalAlignMode: true, // '水平对齐方式'
                    verticalAlignMode: true, // '垂直对齐方式'
                    textWrapMode: false, // '换行方式'
                    textRotateMode: false, // '文本旋转方式'
                    image: false, // '插入图片'
                    link: false, // '插入链接'
                    chart: false, // '图表'(图标隐藏,但是如果配置了chart插件,右击仍然可以新建图表)
                    postil: false, //'批注'
                    pivotTable: false, //'数据透视表'
                    function: true, // '公式'
                    frozenMode: false, // '冻结方式'
                    sortAndFilter: true, // '排序和筛选'
                    conditionalFormat: false, // '条件格式'
                    dataVerification: false, // '数据验证'
                    splitColumn: false, // '分列'
                    screenshot: false, // '截图'
                    findAndReplace: false, // '查找替换'
                    protection: false, // '工作表保护'
                    print: false, // '打印'
                },
                showsheetbar: true, //是否显示底部sheet页按钮
                showsheetbarConfig: {
                    add: true, //新增sheet
                    menu: true, //sheet管理菜单
                    sheet: true, //sheet页显示
                },
                showinfobar: false, //是否显示顶部信息栏
                showstatisticBar: false, //是否显示底部计数栏
                showstatisticBarConfig: {
                    count: false, // 计数栏
                    view: false, // 打印视图
                    zoom: false, // 缩放
                },
                sheetFormulaBar: true, //是否显示公式栏
                allowCopy: false, //是否允许拷贝
                enableAddRow: true, //允许添加行
            }
            luckysheet.create(options)
        },
    }
}

CSS部分

.luckysheet-content{
    margin:0px;
    padding:0px;
    width:100%;
    height:600px;
}

至此可以正常显示!!!

但我在运行过程中发现了如下报错,经过排查是引入路径问题,百度好久,很多都没说明白,我就记录一下,仅供参考!

报错如下:

 解决办法:

找到 luckysheet.umd.js 在这个 js 文件中搜索 expendPlugins/chart/chartmix 会找到如下一个js和一个css,将路径修改为自己的正确路径即可:

至此完成!!!

测试有效!!!感谢支持!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/742251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

91.qt qml-圆角毛玻璃 高斯模糊

qml中使用毛玻璃,可以通过两个类型GaussianBlur或者FastBlur使用,效果如下所示: 接下来先来介绍FastBlur和GaussianBlur 1.FastBlur介绍 FastBlur提供比GaussianBlur更低的模糊质量,但渲染速度更快。FastBlur效果通过使用源内容缩小和双线性滤波的算法模糊源内容来软化源内…

【免费送书活动第一期】赠送实体图书《深入浅出Java虚拟机》JVM原理与实战

赠送实体图书四本&#xff08;免费赠送&#xff09; 《深入浅出JAVA虚拟机&#xff1a;JVM原理与实战》 内容简介&#xff1a; 本书主要以 Java 虚拟机的基本特性及运行原理为中心&#xff0c;深入浅出地分析 JVM 的组成结构和底层实现&#xff0c;介绍了很多性能调优的方案和…

idea编译时遇到的bug

1、 D:\workspace\spark\src\main\Scala\WordCount.scala:3:8 WordCount is already defined as object WordCount object WordCount { 解决参考博客&#xff1a;Error:(21, 8) FlumePushWordCount is already defined as object FlumePushWordCount object FlumePushWor_WSQ(…

Switch超频图文说明

Switch超频图文说明 有些游戏&#xff0c;官方锁频导致游戏卡顿&#xff0c;可以通过超频提升游戏体验。抽空研究了下&#xff0c;发现超频可以在大气层 Atmosphere 和 SX OS系统中使用。 正巧最近有同学询问&#xff0c;就整理个教程好了。 Switch超频图文说明 按自己的破解系…

14-Vue插槽(slot),制作可复用组件

什么是 slot ? Vue 将 <slot>元素作为承载分发内容的出口。插槽内可以包含任何模板代码&#xff0c;包括 HTML或其它组件。 在某些组件的模板中&#xff0c;有一部分区域需要父组件来指定 <!-- message组件&#xff1a;一个弹窗消息 --> <div class"mes…

【工具】浏览器自带下载加速功能

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;善假于物&#…

srt转rtmp(mpegts -> flv)

一、使用ffmpeg拉流srt转rtmp推流过程中遇到音视频问题 1、音频 虽然从mpegts到flv都是AAC格式&#xff0c;但是mpegts多了ADTS头&#xff0c;在flvenc的时候会报错误&#xff1a; Malformed AAC bitstream detected: use the audio bitstream filter aac_adtstoasc to fix it…

JAVA克隆

更多精彩 先案例后讲解&#xff0c;这里是代码教父&#xff0c;今天讲解JAVA中的clone 目录 什么是clone如何实现clone 浅克隆深克隆小结 什么时候使用cloneclone 相关类库的实现分析 什么是clone 在Java中&#xff0c;克隆&#xff08;Clone&#xff09;指的是创建一个现有对…

linux命令与shell编程

文章目录 一、概念linux内存嵌入式嵌入式层次图判断小端和大端 二、linux系统操作命令ls查看cd 命令pwd命令touch 创建文件mkdir 创建目录chmod 修改权限man命令cp 拷贝mv 移动rm命令cat命令echo 命令tty命令->查看当前终端号clear 命令ldd命令 ->查看文件依赖哪些库prin…

make makefile

文章目录 make是一个命令makefile or Makefile是一个当前目录下的文件使用&#xff1a;生成可执行文件清理 作用依赖关系依赖方法make会自动推导makefile中的依赖关系栈式结构为什么清理的时候要make 加上clean?make后面可以直接跟要生成的可执行文件,指定名称的依赖关系和依赖…

Python第二天之容器学习

1.List 容器无非就增删改查 1.添加 name_list [aaa,bbb,ccc,ddd] name_list.append(b1) name_list.insert(1,xxx) print(name_list)append 是在后面追加 而insert是自己定义下表插入 name_list [aaa,bbb,ccc,ddd] name_list2 [qqq,222,111] name_list.extend(name_list…

python 面向对象编程

文章目录 前言如何理解面向对象编程在 python 中如何使用面向对象编程定义类创建对象self添加和获取对象属性添加属性类外添加属性类中添加属性 访问属性类外访问属性类中访问属性 魔法方法__ init __() 方法__ str __()方法__ del __() 方法 前言 大家好&#xff0c;前面我们…

吐血整理,自动化测试Yaml框架配置文件-深入详解(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 YAML详解 YAML它…

上位机智能通信统一解决方案OPC应用

上位机应用开发中的通信需求 通信过程/通信协议多样性 通信统一化处理方案&#xff1a;OPC&#xff08;Open Platform Communications&#xff09;、OPC UA&#xff08;OPC Unified Architecture&#xff09; 基于西门子1500PLC的OPC服务器对接 internal class Program{stati…

BTP Integration Suite学习笔记 - (Unit1) Developing with SAP Integration Suite

今天决定跟着SAP官方资源系统学习一遍BTP Itegration Suite。找到两个Learning Journey: SAP Integration Suite Foundation 和 Solution Integration on SAP BTP。还有一个更大的roadmap,Integration Suite的官方内容在这里都可以链接到。 认证暂时只找到了一个比较基础的&…

干撸Spring,太难了!阿里P8级别「Spring源码全解析」带你起飞

有朋友跟我反映说&#xff0c;最近想详细学习Spring源码&#xff0c;可网上查到的文章都很一般&#xff0c;有没有大牛分享自己Spring实践与源码结合的方法&#xff1f; 干撸Spring&#xff0c;太难了&#xff01;难到你不知道从哪下手&#xff01; 为什么 Spring 天天用&…

云和DevOps如何帮助加速数字化转型?

1.云和 DevOps&#xff1a;概述 数字化转型已成为寻求在现代时代蓬勃发展的企业的一项关键举措。为了加速这一转型&#xff0c;组织正在利用云计算的力量并采用DevOps实践。云计算提供可扩展且灵活的基础架构&#xff0c;而 DevOps 则支持协作和持续交付的文化。本文将探讨云和…

ETHERCAT转PROFIBUS网关连接ethercat网线接口定义

远创智控YC-DP-ECT&#xff0c;是自主研发的一款PROFIBUS从站功能的通讯网关&#xff0c;它的主要功能是将ETHERCAT设备接入到PROFIBUS网络中。 YC-DP-ECT这个小小的网关可不简单&#xff0c; 连接到PROFIBUS总线中做为从站使用&#xff0c;连接到ETHERCAT总线中做为从站使用…

实现企业安全云转型的思考

如今大部分企业都在开展数字化数字化转型&#xff0c;云计算一直在其中起着主导地位&#xff0c;因而组织面临着双重挑战&#xff1a;如何将业务无缝迁移至云上&#xff0c;并确保这种转型的安全。 虽然云的使用保证了可扩展性、成本效率和生产力的提高&#xff0c;但上云过程…

【C++顺序容器】deque的成员函数和非成员函数

目录 deque 1. deque的成员函数 1.1 构造、析构和赋值运算符重载 1.1.1 构造函数 1.1.2 析构函数 1.1.3 赋值运算符重载 1.2 迭代器 1.3 容量 1.4 元素访问 1.4.1 遍历方法 1.5 修改器 1.6 空间配置器 2. deque的非成员函数 deque deque&#xff08;通常发音为 &…