Vue3组件开发:搭建基于Vite的在线表格编辑系统(组件集成)原创手记

通过[前文]的学习,我们已经用Vite搭建出了Vue3的项目原型。今天,我们将基于这个原型,集成SpreadJS电子表格组件和在线编辑器组件,使其具备Excel公式计算、在线导入导出Excel文档、数据透视表和可视化分析能力,实现在线表格编辑系统的雏形。

·同时创建SpreadJS和Designer(表格编辑器)两个组件,用切换路由的方式显示不同组件类型。

·在编辑器组件的工具栏中增加“加载”和“更新”两个按钮。

·点击“加载”即可加载从服务器获取的Excel文件,在编辑器中对该组件做一些修改,点击“更新”按钮,将修改后的文件传递给服务器。

·切换路由显示SpreadJS组件,在该组件添加“加载”和“更新”两个button,功能同上。

[SpreadJS]是一款基于HTML5的原生JavaScript组件,兼容450种以上的Excel公式,提供高度类似Excel的功能,主要用于开发WebExcel组件,实现多人协同编辑、高性能模板设计和数据填报等功能模块,组件架构符合UMD规范,可以以原生的方式嵌入各类应用,并与前后端技术框架相结合。

目前,SpreadJS已针对Vue2做了组件封装,暂时还未对Vue3提供组件封装,不过我们可以通过自己封装SpreadJS组件和表格编辑器的方式,将其集成在Vue3项目中。

1.安装模块

修改package.json文件,添加我们需要的模块,运行命令npminstall来安装所有依赖项目。

"dependencies":{"@fortawesome/fontawesome-free":"^5.14.0","@grapecity/spread-excelio":"^14.0.1","@grapecity/spread-sheets":"^14.0.1","@grapecity/spread-sheets-barcode":"^14.0.1","@grapecity/spread-sheets-charts":"^14.0.1","@grapecity/spread-sheets-designer":"^14.0.1","@grapecity/spread-sheets-designer-resources-cn":"^14.0.1","@grapecity/spread-sheets-designer-vue":"^14.0.1","@grapecity/spread-sheets-languagepackages":"^14.0.1","@grapecity/spread-sheets-pdf":"^14.0.1","@grapecity/spread-sheets-pivot-addon":"^14.0.1","@grapecity/spread-sheets-print":"^14.0.1","@grapecity/spread-sheets-resources-zh":"^14.0.1","@grapecity/spread-sheets-shapes":"^14.0.1","@grapecity/spread-sheets-vue":"^14.0.1","axios":"^0.21.0","vue":"^3.0.2","vue-router":"^4.0.0-rc.5"},2.配置路由

在src文件夹下添加3个文件。

·router/index.js

·views/SpreadSheet.vue

·views/Designer.vue

配置路由:

import{createRouter,createWebHistory}from"vue-router";constroutes=[{path:"/",name:"Designer",component:()=>import("../views/Designer.vue"),},{path:"/spreadSheet",name:"SpreadSheet",component:()=>import("../views/SpreadSheet.vue"),}];exportconstrouter=createRouter({history:createWebHistory(),routes:routes});3.在main.js中引入:

import{createApp}from'vue'import{router}from'./router/index'importAppfrom'./App.vue'import'./index.css'constapp=createApp(App)app.use(router);app.mount('#app')4.修改App.vue:

在main.js文件中,将VueRouter文件添加到项目中(在Vue2中,导入它使用的是Vue.use(router),但在Vue3中添加方式发生了变化)。如下面的截图所示,Vue3是使用createApp方法来实际创建项目的,在挂载应用程序前,需要通过app.use(router)来添加到项目中。

看到这里大家应该会发现,Vite中的路由配置以及main.js引入的方式较Vue2有所不同,为了让其更好的支持Typescript,VueRouter的Vue3版本要求我们必须导入新方法才能使代码正常工作,其中最重要的是createRouter和createWebHistory。

5.集成designer组件

配置完路由之后,就可以开始集成designer组件了。首先,在components文件夹下添加2个文件:

·components/Designer.vue

·components/SpreadSheet.vue

接着,在Designer.vue中集成SpreadJS表格编辑器,代码如下图所示:

·在模板中添加一个div,这个div就是编辑器的容器,可以通过css设置容器的宽高位置等,也就是自定义了编辑器的显示大小及位置。

·导入编辑器所需要的依赖。

·在setup函数中新建一个编辑器。

importDesignerfrom'../components/Designer.vue'import{ref}from"vue"importaxiosfrom"axios"importGCfrom'@grapecity/spread-sheets'importExcelIOfrom'@grapecity/spread-excelio'第四步,在模板中使用该组件标签。

最后,在setup函数中初始化编辑器。

letdesigner=undefined;letdesignerInitialized=(wb)=>{designer=wb;letspread=designer.getWorkbook();}完成上述步骤,页面就可以显示编辑器UI了。

完成了上述步骤,我们已经成功的将SpreadJS编辑器集成到项目中,接下来演示如何在工具栏中新建“加载”和“更新”两个按钮。

由于SpreadJS在线表格编辑器采用了全新可配置设计,在任何区域都可采取jsonconfig的配置方式。通过修改默认的GC.Spread.Sheets.Designer.DefaultConfig,便可以达到自定制功能。

1.定制Ribbon选项卡

在浏览器Console中输入GC.Spread.Sheets.Designer.DefaultConfig可查看默认ribbon选项卡配置。参考默认配置,可以自定义操作选项卡。

letDefaultConfig=GC.Spread.Sheets.Designer.DefaultConfig;letcustomerRibbon={id:"operate",text:"操作",buttonGroups:[],};2、自定义按钮

在定义按钮之前,需要先定义按钮点击时的命令Commands,并将命令注册到config的commandMap属性上。

letribbonFileCommands={"loadTemplateCommand":{iconClass:"ribbon-button-download",text:"加载",//bigButton:true,commandName:"loadTemplate",execute:load},"updateTemplateCommand":{iconClass:"ribbon-button-upload",text:"更新",//bigButton:true,commandName:"updateTemplate",execute:update}}上面的示例代码注册了loadTemplateCommand和updateTemplateCommand两个命令。

·execute对应具体执行内容的function,也就是load和update方法。

·iconClass为按钮样式,可以制定按钮图片

·text为按钮显示文字

·commandName为命令名称,需要全局唯一

iconClass示例代码:

.ribbon-button-download{background-image:url(图片地址,可以是base64svg)};有了命令就可以添加对应button的config了:

letcustomerRibbon={id:"operate",text:"操作",buttonGroups:[{label:"文件操作",thumbnailClass:"ribbon-thumbnail-spreadsettings",commandGroup:{children:[{direction:"vertical",commands:["loadTemplateCommand","updateTemplateCommand"],}],},},],};在designer的config中加入自定义的命令和按钮:

DefaultConfig.ribbon.push(customerRibbon);DefaultConfig.commandMap={};Object.assign(DefaultConfig.commandMap,ribbonFileCommands);最后,不要忘了补充Load方法和update方法中的代码。

Load方法用于执行excel文件的加载。在接收到后台传递的json数据后,使用fromJSON方法加载该文件,代码如下图:

letload=(e)=>{letspread=designer.getWorkbook();letformData=newFormData();formData.append("fileName","path");axios.post('spread/loadTemplate',formData,{responseType:"json",}).then((response)=>{if(response){alert("加载成功");templateJSON=response.data;spread.fromJSON(templateJSON);}}).catch((response)=>{alert("错误");})}Update方法用于执行文件的更新。在编辑器对加载的文件做出操作,如修改背景色、添加文本时,使用toJSON方法将当前spread保存为json数据传递给后台存储,代码如下:

letupdate=(e)=>{letspread=designer.getWorkbook();letspreadJSON=JSON.stringify(spread.toJSON());letformData=newFormData();formData.append("jsonString",spreadJSON);formData.append("fileName","fileName");axios.post('spread/updateTemplate',formData).then((response)=>{if(response){alert("更新成功");}}).catch((response)=>{alert("错误");})}完成上述操作,新建的按钮就可以正常工作了。如下图示例,点击工具栏加载按钮,文件已在SpreadJS表格编辑器成功加载。

以上就是Vue3组件开发:搭建基于SpreadJS的表格编辑系统(组件集成篇)的全部内容,通过集成SpreadJS电子表格组件和在线编辑器组件,我们搭建的项目原型已经具备了在线表格编辑系统的雏形。

在下一章功能拓展篇中,我们将演示如何为这个系统雏形增加更多电子表格功能,并提供整个工程源码供参考。

THE END
1.15款SVG在线编辑器分享,总有一款适合你!本文将为你分享 15 款 SVG 在线编辑器,包括:即时设计、Vectr、Vecteezy、Vecta、Chartist.js、iDesign、Adobe Illustrator Draw、Affinity Designer、CorelDRAW、Xara Designer Pro、MacSVG、Justinmind、Sketsa SVG Editor、Sketch、Inkpadhttps://js.design/special/article/svg-online-editor-sharing.html
2.特别好用!10款原型绘制在线工具推荐!协同上下游 一站式便捷交付:通过浏览器进入Pixso,实时获取所有原型设计信息,一个工具替代多种传统原型设计和项目管理工具,真正提升产设研团队的沟通协作效率。 Sketch Sketch是一款适用于Mac系统的原型绘制在线工具,以其简洁的界面和强大的功能而受到广泛欢迎。它提供了丰富的插件和模板,使得设计师可以快速创建原型。Sketchttps://pixso.cn/designskills/10-online-tools-for-prototyping/
3.图片编辑器在线图片编辑器在线设计工具本专题页面介绍了图片编辑器在线的功能及使用方法,包含了丰富的设计工具介绍、各种风格的设计模板以及推荐的优秀模板。无论是创建海报、视频还是H5,本页面都提供了详细的指导和资源,帮助您轻松完成设计工作。https://m.gaoding.com/features/photo-editor-online
4.商品设计封面设计标签设计等嘲在线设计开源今天跟大家推荐一下自己的开源图片编辑器,更像一个开源在线设计工具,可用于海报设计、图文笔记、商品设计、封面设计、标签设计、logo设计、等场景,自定义字体、素材、设计模板、右键菜单、快捷键,还提供插件化的方式扩展二次开发,目前GitHub的收藏是4.4K Star。。 https://blog.csdn.net/nihaojob123/article/details/139966351
5.在线设计神器爱设计极简的在线设计工具会打字就会设计 极简的在线图片编辑和平面设计工具,高频更新的创模板资源库,无论何时何地 网页还是手机,简单的拖拽操作,一分钟完成高质量设计作品,会打字就会设计。 爱设计是北京饼干科技有限公司旗下品牌 爱设计整合版权及设计资源供应链,自研isj图像处理引擎,形成多端在线拖拽设计工具,针对企业营销https://www.135editor.com/yygzs/185.html
6.免费AI设计工具,模板和在线编辑器DesignMaker使用我们的在线AI设计向导进行惊人的设计。创建广告,传单,海报,名片,横幅,菜单,社交媒体帖子等。免费试用。https://designs.ai/cn/designmaker
7.推荐10款实用且颜值高的在线代码编辑器腾讯云开发者社区推荐10款实用且颜值高的在线代码编辑器 我们大家在正常工作开发时,大多数开发者都是借助IDE代码编辑器进行代码编写的,因为IDE集成了很多强大功能,可以简化我们在编码编写时遇到的问题,比如:代码补全、文本提示、异常错误提醒,还有安装自定义插件让我们的开发更加便捷等功能。https://cloud.tencent.com/developer/article/2356844
8.在线编辑器bejson在线工具-在线编辑器,大家可以在这个编辑页面内容最终可以获取源码https://www.bejson.com/ui/ueditor/
9.在线设计在线作图图片在线编辑器找图网是一款在线作图编辑器,提供大量版权原创海报设计,公众号图片素材,彩色二维码,每日一签等素材,支持在线图片设计,图片处理,美化图片等功能,一站式满足图片在线设计要求。http://zhaotu.com/
10.5个好用的在线网页设计编辑器!在线网页设计编辑器是一种通过互联网和浏览器来进行网页设计和编辑的工具,网页编辑器具有代替传统本地设计工具的特点,无需安装,只需要注册登录即可使用,与传统本地设计工具相比,它具有更好的跨平台性和协作性,网页设计人员可以通过在线编辑器直接进行页面布局、元素设计、文字排版、风格调整等操作,便于协作和通信,并支持http://www.wuda-website.com/html/202369155245.html
11.Python在线编辑器设计与开发python线上编辑Python在线编辑器设计与开发 python线上编辑 一款顺手的好的编辑器可以让程序员写代码更得心应手,效率也会更高,但是编辑器本身没有好坏,只有使用者使用起来是否顺手而已,这里简单给大家介绍几款常用的可以编辑Python的软件。 一、终端直接编写 windows系统:Win+r,然后在运行框中输入cmd即可打开终端。MAC系统:可以在https://blog.51cto.com/u_16213658/11190120
12.比格设计在线图片编辑器免费在线图片制作比格设计是一款在线图片编辑器网站,提供海量正版图片、海报图片、公众号配图、图片模板设计素材,大量图片素材均可免费在线图片制作设计,正版配图设计素材,商用无忧。https://bigesj.com/
13.比格设计在线图片编辑器免费在线图片制作比格设计是一款在线图片编辑器网站,提供海量正版图片、海报图片、公众号配图、图片模板设计素材,大量图片素材均可免费在线图片制作设计,正版配图设计素材,商用无忧。http://neweditor.bige.show/
14.H5设计一个简单的在线编辑器深蓝的blog本来也懒得写,但是网上开源的编辑器总是太大,太累赘,而我只需要一个简简单单可以发点小心情的编辑器,所以就想到了自己设计一个,原理也很简单,现在把代码贴出来: var editorUtils = function () { $context = null; return { /** * 初始化编辑器 http://www.lanxinbase.com/?p=1648
15.美图秀秀在线设计PS在线图片编辑器美图秀秀网页版为用户提供在线的一站式业务解决方案,包括在线PS图片编辑、海报设计、模板设计、专业证件照片制作、AI人像抠图、照片修复、高清人像等,电商免费做图、微商批量加水印必备作图神器。https://pc.meitu.com/toolbox
16.图司机免费图片在线PS编辑器图片处理优秀新媒体导航别名:图司机-免费图片在线ps编辑器_10秒搞定平面设计特性: 免费 分类: 图片处理 图片设计 海报设计 热度:543286更新:2024-10-25 04:00:02详细介绍 图司机是国内超前平面设计工具和在线平面设计网站之一,提供海量海报在线制作、邀请函、易拉宝、banner、gif动图、名片、公众号首图等免费设计素材和模板,可在线一键稿定https://123.meibp.com/9060.html
17.免费的在线拼图软件平面设计软件图片编辑器FotoJet是免费的在线图片编辑器,拼图软件和平面设计软件。你可以用它轻松地编辑照片,创作拼图和设计图片,现在就去试试吧!http://www.fotojet.com/cn/
18.比格设计专业的在线图片编辑器比格设计是一款专业的在线图片编辑器网站,为用户提供海量正版图片、海报图片、公众号配图和图片模板设计素材。我们的网站拥有大量的图片素材,用户可以免费在线进行图片制作设计,同时我们也提供正版配图设计素材,让商用变得无忧。 作为90%企业的选择,比格设计是135编辑器旗下的产品。我们的网站提供了丰富的功能和资源,让用户https://www.xiaolizhijia.com/9423.html
19.图片在线编辑图片在线PS图片在线设计懒人作图易点图片编辑器是一款专为新手设计的图片编辑神器,包括了基础的图片尺寸调整、反转、涂鸦、添加文字等,还可以在线设置图片滤镜,图片遮罩。https://www.wxeditor.com/ps/
20.包装设计大赛大闸蟹包小盒云设计是一款极简的3D包装云设计工具,在设计之前,请务必进入到包小盒的官网去体验在线编辑器的功能模块,熟悉使用方法,了解编辑器的基础上进行在线设计。 包装设计区别于平面设计,它落地性很强,不仅仅停留在电脑上,还要能交付工厂,能上机印刷,在现实中呈现精美作品,所以对于设计师的要求和细节性要求很高,在设计之https://help.baoxiaohe.com/archives/1585/
21.html表单编辑器免费在线表单设计:ZohoCreatorZoho Creator是html表单编辑器,也是在线表单设计器,它让用户轻松快速的创建html表单,而且Zoho Creator可以免费使用。https://www.zoho.com.cn/creator/html-builder.html
22.图怪兽官网,在线编辑器,怪兽图下载,在线海报制作别摸鱼导航图怪兽作图神器,是一个在线ps图片编辑器,它相当于ps精简版软件,可提供微信编辑器功能,在线ps照片处理,拼图,图片制作,在线设计,平面设计,海报设计,在线图片处理等功能。图怪兽作图不求人 开始做图 图怪兽海报栏目提供2159510个在线海报模板制作,包含海报设计素材,海报图片,海… https://biemoyu.com/sites/tuguaishou.html
23.图片编辑在线图片编辑器制作图片做图凡科快图图片编辑器,免费在线图片编辑软件,免下载,丰富图片版权资源,海量图片制作模板,不用ps,1分钟作图,超简单3步操作,完成在线做图,支持在线抠图、压缩、分割、加水印、旋转等图片编辑。https://kt.fkw.com/
24.在线PS软件在线PS图片(照片)处理工具PS在线图片编辑器是一个专业精简的在线ps图片照片制作处理软件工具,绿色免安装,免下载,直接在浏览器打开就可用它修正,调整和美化图像。https://www.uupoop.com/
25.包图编辑器包图编辑器是包图网旗下的一款在线图形设计工具,拥有海量模板,丰富素材,让你做图不求人,轻松早下班https://pidoutv.com/sites/6096.html
26.易可图电商做图必备图片编辑 导入图片,即刻编辑 创建设计 商品营销海报、商品主图设计,小红书封面通通搞定 商品图片处理 图片编辑 图片翻译 智能抠图 智能消除 图片变清晰 批量工具 无损放大 AI商拍 AI商品图 AI模特试衣 AI人台模特 AI模特试鞋 AI模特换脸 更多功能 主图视频 https://cs-c2.yiketu.com/
27.精华Web开发必备资源汇总狼人:)SQL 在线设计编辑器,这一节的那个图片就是这个在线编辑器的样子了。一个画数据库图表的在线工具。很强大。 API和在线数据 ProgrammableWeb, 最流行的Web Services 和 API 目录大全。 Google Data Protocol一组Google服务的数据服务API。 Yahoo! Developer Network– APIs 和 Tools https://www.cnblogs.com/waw/articles/2187736.html
28.在线图片编辑器,在线PS软件,在线PS图片(照片)处理工具PS在线图片编辑器是一个专业精简的在线ps图片照片制作处理软件工具,绿色免安装,免下载,直接在浏览器打开就可用它修正,调整和美化图像,在线快速图片和视频编辑,不会PS也能完成设计,海报、简历、PPT、公众号配图、电商等海量模板快速出图。三秒抠图实用便捷,抖音快手热门https://www.qtool.net/image
29.免费在线AI照片编辑器图像生成器和设计工具使用Pixlr 的在线照片编辑和设计工具发挥创意。包括 AI 图像生成器、批量编辑器、动画设计、增强器等。立即免费试用!https://pixlr.com/cn/
30.Fotor免费的在线图片编辑与平面设计工具Fotor是一款功能强大的免费在线图片编辑器,提供了丰富的图像处理工具,让用户可以轻松完成各种图片编辑需求。 网站服务:AI图片处理,图片编辑,在线工具,AI图片处理,图片编辑,在线工具。 Fotor-免费的在线图片编辑与平面设计工具简介 什么是”Fotor-免费的在线图片编辑与平面设计工具”? Fotor是一款功能强大的免费在线图片编辑https://openi.cn/sites/143212.html
31.免费的在线照片编辑器新功能:Removal.AI提供的免费在线照片编辑器! 一键自动运行的免费背景去除剂现在带有功能强大的照片编辑工具。 您不仅可以使用Removal.AI一键式自动删除背景,现在还可以在删除背景后使用透明背景进一步编辑图像。 其他功能包括使您能够添加其他背景颜色或图像,添加文本,对图像应用阴影效果等功能。 https://removal.ai/zh-hant/free-online-photo-editor/
32.轻量级在线平面设计工具图帮主,设计小白最爱的懒人设计神器。拖拉拽,秒出图,轻松搞定平面设计,图帮主在线平面设计工具提供五大类50多个场景的海量模板,让创意不再受限于工具。https://www.tubangzhu.com/
33.图怪兽作图神器在线海报编辑器PS图片制作图怪兽作图神器,是一个在线ps图片编辑器,它相当于ps精简版软件,可提供微信编辑器功能,在线ps照片处理,拼图,图片制作,在线设计,平面设计,海报设计,在线图片处理等功能。图怪兽作图不求人处理简单易用,这款在线图片编辑软件让设计海报模板图片更轻松,帮助企业视觉营销投入成本http://www.pikhive.com/
34.图怪兽作图神器在线海报编辑器PS图片制作图怪兽作图神器,是一个在线ps图片编辑器,它相当于ps精简版软件,可提供微信编辑器功能,在线ps照片处理,拼图,图片制作,在线设计,平面设计,海报设计,在线图片处理等功能。图怪兽作图不求人处理简单易用,这款在线图片编辑软件让设计海报模板图片更轻松,帮助企业视觉营销投入成本https://wechatopenplatform.818ps.com/