新人必看!手把手教你如何使用浏览器表格插件(下)
前言 | 问题背景本文由葡萄城技术团队于博客园原创并首发。葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
作为一名优秀的打工人,Excel是大家上班中必不可少的办公软件。随着互联网时代的到来,越来越多的公司开始使用各种B/S系统来处理表格数据文件。那么有没有一种可以直接在浏览器中使用的Excel插件去处理数据呢?答案是肯定的。本文小编将为大家介绍如何在Vue框架中集成在线表格插件(以下简称为“SpreadJS”)和在线表格编辑器(类Excel浏览器插件)实现在浏览器中使用Excel插件来处理数据。
在本教程中,我们将使用node.js,请确保已安装最新版本,除此之外还需要使用软件Visual Studio Code(以下简称“VSCode”)作为编程环境,请您以管理员身份运行它。
(资料图片仅供参考)
上一篇文章(《新人必看!手把手教你如何使用浏览器表格插件(上)》)小编为大家介绍了如何在Vue框架中集成表格插件(SpreadJS),本章小编将继续为大家介绍如何在Vue中集成在线表格编辑器。
如何在Vue框架中集成在线表格编辑器(designer)在Vue中集成在线表格编辑器:
本节内容小编将为大家介绍Vue框架中如何集成在线表格编辑器和如何实现使用编辑器实现表格数据绑定。
Vue集成在线表格编辑器和SpreadJS的方法相似,首先引入需要集成到Vue中的资源,其次使用styleInfo标签和designerInitialized设置表格的大小(使用方法与Vue集成SpreadJS一样,具体可以参考第一篇文章)。
import {defineComponent} from "Vue" // SpreadJS核心资源 import GC from "@grapecity/spread-sheets" // 形状资源 import "@grapecity/spread-sheets-shapes" // 二维码资源 import "@grapecity/spread-sheets-barcode" // 图表资源 import "@grapecity/spread-sheets-charts" // 文件IO相关资源 import "@grapecity/spread-excelio" // 打印资源 打印资源要在pdf之前 import "@grapecity/spread-sheets-print" // 导出pdf相关资源 import "@grapecity/spread-sheets-pdf" // 透视表相关资源 import "@grapecity/spread-sheets-pivot-addon" // 集算表相关资源 import "@grapecity/spread-sheets-tablesheet" // 组件运行时样式信息 import "@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css" // 组件运行时语言资源 import "@grapecity/spread-sheets-resources-zh" // 设计器资源,设计器资源要在设计器核心资源之前 import "@grapecity/spread-sheets-designer-resources-cn" // 设计器核心资源 import * as GcDesigner from "@grapecity/spread-sheets-designer" // 设计器css import "@grapecity/spread-sheets-designer/styles/gc.spread.sheets.designer.min.css" // 设计器对Vue的支持资源 import Designer from "@grapecity/spread-sheets-designer-Vue" import {bindFile} from "../files/bindFile" import {bindSchema,generateData} from "../files/bindTree.js"
(Vue引入在线表格编辑器的资源)
实现数据绑定:
为了更形象、具体的描述数据绑定,小编将用一个简单的小案例为大家介绍在SpreadJS中数据绑定是如何实现的。
实现需求:通过SpreadJS实现一个简单的苹果销售量的数据表格。数据表格中的数据可以通过数据文件实现将数据回显到数据表格中。下面是具体实现的方法步骤:
(1)设计可视化表格:
使用spreaeJs表格设计器拉拽设计出一个表格如下图所示(和Excel创建表格的方法一样,不详细介绍)。
(初始化一个Excel表格)
除了SpreadJS可视化方法创建表格之外,小编再为大家再介绍一种使用数据文件实现表格的方法:
在提供的源码资源中包含了两个数据文件bindFile.js和bindTree.js,而bindFile.js文件则是上图表格的Json文件格式,使用spread.fromJSON(bindFile)方法可以读取bindFile.js文件中的内容并显示到页面上。
const loadBindData = (spread:GC.Spread.Sheets.Workbook) => { // 加载文件(第一步) spread.fromJSON(bindFile) }
(读取bindFile.js文件的代码)
(2)创建工作表:
设计完可视化表格之后就是创建数据表来存储数据,创建工作表也可以分为可视化创建工作表和数据文件实现工作表,由于可视化设计工作表操作比较简单,小编在这里不作详细介绍。下面主要介绍如何通过代码实现数据表:使用designer的setData方法读取bindTree.js文件中的bindSchema(数据表的Json格式)并加载到SpreadJS的页面中。
//第二步绑定数据绑定表信息(designer初始化完成之后,加载右侧Tree)
designer.setData("treeNodeFromJson",JSON.stringify(bindSchema)) designer.setData("oldTreeNodeFromJson",JSON.stringify(bindSchema)) designer.setData("updatedTreeNode",JSON.stringify(bindSchema))
(实现创建工作表的代码)
(3)实现数据绑定:
设计完工作表之后,下面将介绍如何通过代码和数据文件实现数据绑定:
首先去调用bindTree.js文件中的generateData方法生成随机数据,然后使用
GC.Spread.Sheets.Bindings.CellBindingSource方法去生成绑定的数据源,再将绑定的数据源放到初始化的活动页sheet中,最后去加载数据。具体实现代码如下:
const loadBindData = (spread:GC.Spread.Sheets.Workbook) => { // 加载文件(第一步) spread.fromJSON(bindFile) //第三步绑定数据 // mock数据 let data = generateData(20) // 生成绑定数据源 let source = new GC.Spread.Sheets.Bindings.CellBindingSource(data) // 获取当前活动sheet let sheet = spread.getActiveSheet() as GC.Spread.Sheets.Worksheet // 获取sheet中的目标表格,并将表格的数据设置为随数据量自动纵向扩展 let table = sheet.tables.findByName("report_card") table.expandBoundRows(true) // 加载数据 sheet.setDataSource(source) }
(实现数据绑定的代码)
将上面的步骤代码合在一起之后的整体代码如下所示:
//绑定数据信息(第二步)
const initDesigner = (designerEntity:GcDesigner.Spread.Sheets.Designer.Designer) => { designer = designerEntity customeConfig(designer) //第二步绑定数据绑定表信息(designer初始化完成之后,加载右侧Tree) designer.setData("treeNodeFromJson",JSON.stringify(bindSchema)) designer.setData("oldTreeNodeFromJson",JSON.stringify(bindSchema)) designer.setData("updatedTreeNode",JSON.stringify(bindSchema)) let spread = designer.getWorkbook() as GC.Spread.Sheets.Workbook loadBindData(spread) } const loadBindData = (spread:GC.Spread.Sheets.Workbook) => { // 加载文件(第一步) spread.fromJSON(bindFile) //第三步绑定数据 // mock数据 let data = generateData(20) // 生成绑定数据源 let source = new GC.Spread.Sheets.Bindings.CellBindingSource(data) // 获取当前活动sheet let sheet = spread.getActiveSheet() as GC.Spread.Sheets.Worksheet // 获取sheet中的目标表格,并将表格的数据设置为随数据量自动纵向扩展 let table = sheet.tables.findByName("report_card") table.expandBoundRows(true) // 加载数据 sheet.setDataSource(source) }return{ styleInfo,initDesigner }
(整体流程的代码)
(最终效果图)
做完这些之后便可以在浏览器中体验和使用在线编辑器了(高度类似Excel操作)。
备注:
整理的完整源码附文章下方day2文件夹中的vue3-spreadJS-ts文件,直接在终端中使用npm run dev指令运行即可。
源码链接:https://pan.baidu.com/s/1ddz8UCuDeVZEIvXiff70xw 密码:dnpx
本文对应的视频教程
总结这两篇文章为大家详细的介绍了SpreadJS在Vue框架中使用的方法和具体的作用,希望可以帮助大家在学习SpreadJS的道路上可以起到帮助。
标签:

新人必看!手把手教你如何使用浏览器表格插件(下)
2023-05-26

百度李彦宏:大模型将深度融合到实体经济中_焦点资讯
2023-05-26

新建专用道,压减停车位 城市让慢行更通畅
2023-05-26

宜安科技:5月25日融资买入959.34万元,融资融券余额2.45亿元 全球独家
2023-05-26

天天微头条丨白宫新闻秘书:债务上限谈判富有成效 但两党仍有分歧
2023-05-26

微头条丨我国的家族企业有哪些_家族企业有什么利与弊
2023-05-26

铝棒销售合同范本(合集6篇)-今日热搜
2023-05-26

赛尔号齐天小圣称号_赛尔号齐天小圣
2023-05-26

雀巢冰淇淋_关于雀巢冰淇淋的介绍|世界通讯
2023-05-26

【环球速看料】王刚香菇肉酱的做法?
2023-05-26
百度李彦宏:大模型将深度融合到实体经济中_焦点资讯
新建专用道,压减停车位 城市让慢行更通畅
宜安科技:5月25日融资买入959.34万元,融资融券余额2.45亿元 全球独家
天天微头条丨白宫新闻秘书:债务上限谈判富有成效 但两党仍有分歧
微头条丨我国的家族企业有哪些_家族企业有什么利与弊
铝棒销售合同范本(合集6篇)-今日热搜
赛尔号齐天小圣称号_赛尔号齐天小圣
雀巢冰淇淋_关于雀巢冰淇淋的介绍|世界通讯
【环球速看料】王刚香菇肉酱的做法?
对望歌词_对望歌曲介绍
看热讯:计量认证合格证书是什么_计量认证
天天热点评!骸骨骑士_骸骨
7天欲赚300万,天涯直播众筹续命钱
广东省深圳市福田区利用社会力量助力征兵工作|全球动态
【环球播资讯】贵州省卫健委与联仁健康签署战略合作协议
AL俱乐部官宣:Fishball加入担任助教,该教练此前曾执教UP 世界焦点
唐代壁画珍品馆_唐代壁画珍品馆
2022年度中国港口集装箱码头评优结果公布 福建多个港口码头榜上有名
上海市复旦大学医学院教授名单官网 全球实时
当前热点-恒盛能源:公司目前无储能和虚拟电厂业务
当前头条:郭晶晶巩俐合影曝光 两人亲昵挽手笑容优雅
安徽最新通报13批次抽检食品不合格_天天速看
全球速递!双重预定论是什么意思_什么是双重预定论简介介绍
天天要闻:墨西哥波波卡特佩特火山高度活跃(高清组图)
世界最资讯丨消费复苏带动烘焙产业发展 设备制造商加大中国市场布局
全球热推荐:C航天上市首日遭融券卖出376.86万股
焦点精选!龙陵县气象台发布雷电黄色预警信号【Ⅲ级/较重】【2023-05-25】
“‘京’彩文化 青春绽放”行动在京启动 当前简讯
今日热搜:杭州臻强投资管理合伙企业 有限合伙_关于杭州臻强投资管理合伙企业 有限合伙概略 当前最新


- 趣味运动会里话廉洁_世界实时
- 周生生铂金多少钱一克(2023年05月25日)参考价格-当前热文
- 英派斯(002899.SZ):公司债务还本付息能力充足
- 国家能源局:豁免部分分散式风电项目电力业务许可
- 全球微速讯:西班牙前政要:一个强大的西方国家是北溪事件的幕后真凶
- 隆基绿能,31.8%! --> 隆基绿能,31.8%! 当前信息
- 新相微新股缴款提示
- 詹姆斯退役?“决定4”为时尚早|每日速递
- “十四五”期间我国世界遗产有望达到60项|世界热资讯
- 视点!ip地址与其他系统有冲突怎么办_ip地址与网络上其他系统有冲突怎么解决
- 李轶:智慧农业、特色农产、休闲文旅 为乐亭县乡村振兴赋能提速 焦点热闻
- 选择哪些类型的理财产品比较好 筛选标准如下
- 世界今日讯!玫瑰花的葬礼歌词_玫瑰花的葬礼整首歌词
- 百花缭乱高清_百花缭乱无修版 即时焦点
- 企业股东出资比例是怎么算的
- 非遗泥塑,演绎踏足山海|始祖鸟Arc’teryx 2023夏季艺术橱窗
- 小鹏汽车何小鹏:已完成渠道扁平化管理,将对现有销售网络进行优化
- 野菜做法之野苋菜鸡蛋水饺 野苋菜鸡蛋馅饺子怎么做
- 盗墓笔记鬼玺 鬼玺-全球新消息
- 2023吉林高考准考证打印时间及入口 在哪打印
- 2023年5月25好运生肖排名榜。
- 空之要塞启航乌鸦技能介绍_当前热文
- 售32.98万起,捷尼赛思GV70燃油版上市
- 感恩同行·共鉴“伊例家十九香”新品嘉年华
- 广西柳州:多国留学生感受苗族传统技艺
- 如何把微信收藏的东西转到电脑里去(如何把微信收藏的东西转到电脑里) 世界今亮点
- 2023中国环塔(国际)拉力赛SS3赛况:冲线需实力与运气加持
- 叮咚买菜撤城川渝,4年亏损123亿元 天天日报
- 使用价值和价值的关系式_使用价值和价值的关系
- 世界要闻:31.8%!国产钙钛矿电池转化率跻身世界前三、中国第一
- 睾丸痒痒越抓越痒起疙瘩_睾丸痒痒越抓越痒
- 解码大脑新成果:体内直检慢性疼痛首次实现
- 全球球精选!日本股市创33年新高背后的货币故事
- 得劲歌曲原唱完整版(得劲)|焦点观察
- 中煤集团将在内蒙古打造千亿元级现代煤化工产业示范园区 全球球精选
- 机构:目前A股市场回落至较低估值水平 或正是进场投资的好时机 |环球视讯
- 2023三重教育5月英语答案 当前通讯
- 环球速讯:直播打赏岂能沦为洗钱通道
- 第十八届、第十九届中国电影华表奖揭晓-焦点播报
- 电阻值什么意思_电阻值
- 申昊科技:可转债转股价格调整为33.91元/股|世界动态
- 男生说呵呵代表什么(男生说呵呵是什么意思)_环球即时
- 【新要闻】或将2024年引入并国产 宝马i5官图提前曝光
- “重拾时光与青春”经典歌汇火热开唱_天天热点
- 第十一届中国(湖南)矿博会交易总额18.6亿元
- 世界看点:2023广美研究生毕业展指南(时间+地点+门票)
- 我爱我家:加强相寓推广 提高市场规模 全球快资讯
- 总台海峡时评丨涉台提案再被拒,挑战一个中国原则必然失败!
- 怎么办理停息挂账和延期还款?信用卡不能延期还款怎么办?
- 锂电池板块跌0.68% 日播时尚涨10.02%居首|每日快报