您当前的位置:首页 > 电脑百科 > 电脑知识

技术干货:Vue框架下实现导入导出Excel及PDF

时间:2020-04-07 17:33:57  来源:  作者:

项目需求:

开发一套基于Vue框架的工程档案管理系统,用于工程项目资料的填写、编辑和归档,经调研需支持如下功能:

  • Excel报表的导入、导出
  • PDF文件的导出
  • 打印表格经过技术选型,项目组一致决定通过表格组件SpreadJS 来实现。

以下是实现Excel报表的导入导出、PDF导出、打印表格的一些思路,供大家参考:

环境介绍

1.后台:Spring Boot 2.x

2.前台:vue、vue-element、webpack、iview、Vuex.js 2.x

3.组件:SpreadJs V11

SpreadJS 组件下载地址:https://www.grapecity.com.cn/download/?pid=57

初始化Vue项目

这里,可以参考这篇技术博客: 只需3 分钟,就能创建 一个SpreadJS 的 Vue 项目

项目运行效果:

如下是本地的一个Excel文件:

技术干货:Vue框架下实现导入导出Excel及PDF

 

通过SpreadJS,导入到项目中的效果:

技术干货:Vue框架下实现导入导出Excel及PDF

 

我的项目中应用了SpreadJS V12.2.5的版本(目前官网SpreadJS的最新版本是V13),其中package.json 需要添加的引用如下:

1. "dependencies": {

2. "@grapecity/spread-excelio": "12.2.5",

3. "@grapecity/spread-sheets": "12.2.5",

4. "@grapecity/spread-sheets-pdf": "^12.2.5",

5. "@grapecity/spread-sheets-print": "12.2.5",

6. "@grapecity/spread-sheets-resources-zh": "12.2.5",

7. "@grapecity/spread-sheets-vue": "12.2.5",

8. "@grapecity/spread-sheets-charts": "12.2.5" ,

9. "file-saver": "2.0.2",

10. "jquery": "2.2.1",

11. "vue": "^2.5.2",

12. "vue-router": "^3.0.1"

13. },

执行npm install 命令安装SpreadJS 组件

可以参考这篇技术博客:

https://www.grapecity.com.cn/blogs/spread-sheets-v11sp1-support-npm

导入导出Excel报表

1. 安装相关的资源包: "@grapecity/spread-excelio"、 "file-saver"

2. 在页面中引入: import ExcelIO from '@grapecity/spread-excelio'、import FaverSaver from 'file-saver'

3. 如下代码可实现导入导出Excel:

1. exportXlsx () {

2. let ex = new ExcelIO.IO()

3. let json = this.spread.toJSON()

4. ex.save(json, function (blob) {

5. FaverSaver.saveAs(blob, 'export.xlsx')

6. }, function (e) {

7. console.log(e)

8. })

9. },

10. importXlsx(){

11. let self = this;

12. var excelIO = new ExcelIO.IO();

13. console.log(excelIO);

14. const excelFile = document.getElementById("fileDemo").files[0];

15. excelIO.open(excelFile, function (json) {

16. let workbookObj = json;

17. self.spread.fromJSON(workbookObj);

18. }, function (e) {

19. alert(e.errorMessage);

20. });

21. }

导出PDF的注意事项

1. 安装相同版本的 PDF包: "@grapecity/spread-sheets-pdf"

2. 在需要打印的页面引入该包: import "@grapecity/spread-sheets-pdf";

3. 引入该包需要注意引入顺序,先引入 @grapecity/spread-sheets和 grapecity/spread-sheets-print

4. 需引入第三方插件file-saver : import FaverSaver from 'file-saver'

5. 如下几行代码可实现导出PDF功能

1. savePdf(){

2. let self = this;

3. let jsonString = JSON.stringify(self.spread.toJSON());

4. let printSpread = new GC.Spread.Sheets.Workbook();

5. printSpread.fromJSON(JSON.parse(jsonString));

6.

7. printSpread.savePDF(function(blob) {

8. // window.open(URL.createObjectURL(blob))

9. FaverSaver.saveAs(blob, 'Hello.pdf')

10. }, function(error) {

11. console.log(error);

12. }, {

13. title: 'Print',

14. });

15. }

示例代码下载

大家可下载下方的示例代码,实现导出PDF、导入导出Excel功能。

SpreadJSVue.zip


SpreadJS 纯前端表格控件

SpreadJS 是一款基于 html5 的纯前端电子表格控件,兼容 450 种以上的 Excel 公式,凭借其 “高性能、跨平台、与 Excel 高度兼容”的产品特性,备受以华为、招商银行、苏宁易购、天弘基金等为代表的企业用户青睐。在带来亲切的 Excel 使用体验的同时,满足 Web Excel 组件开发、数据填报、Excel 类报表设计、在线Excel 协同应用等业务场景,极大降低了企业研发成本和项目交付风险。



Tags:Excel   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
大家好, 前面我们讲过利用常规的方法,制作二级下拉列表辅助表。 今天我们就来介绍一下,Dax 度量值(Power Pivot)和 Power Query 的 M 函数做法,主要带大家拓展思路。 如下图,我们现...【详细内容】
2021-12-28  Tags: Excel  点击:(1)  评论:(0)  加入收藏
Excel常用电子表格公式大全   一、Excel基本公式   1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。   2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"200...【详细内容】
2021-12-21  Tags: Excel  点击:(11)  评论:(0)  加入收藏
前言越来越多开发者表示,自从用了Python/Pandas,Excel都没有打开过了,用Python来处理与可视化表格就是四个字——非常快速!下面我来举几个明显的例子1.删除重复行和空...【详细内容】
2021-12-16  Tags: Excel  点击:(21)  评论:(0)  加入收藏
哈喽大家好! 前几天一个朋友向我疯狂吐槽。 快到年底了,公司要统计年度数据。 需要把一月到十二月份,十二张表格的数据,全部汇总到一个表格内。 这样的数据汇报每年都会有,每到年...【详细内容】
2021-12-14  Tags: Excel  点击:(23)  评论:(0)  加入收藏
我发现最近不少小叶子的留言都和 Excel 相关,我寻思是时候出一期解决 Excel 疑难杂症的小合集了。于是毛毛在众多问题中,挑了三个被问次数最多的有关 Excel 的问题,今天就来给...【详细内容】
2021-12-14  Tags: Excel  点击:(30)  评论:(0)  加入收藏
当你需要每天对 Excel 做大量重复的操作,如果只靠人工来做既浪费时间,又十分枯燥,好在 Python 为我们提供了许多操作 Excel 的模块,能够让我们从繁琐的工作中腾出双手。今天就和...【详细内容】
2021-12-07  Tags: Excel  点击:(17)  评论:(0)  加入收藏
试想一下,用 Excel 管理项目的时候,会有很严格的日期安排,而且项目中的各细目经常是并行作业的,这就意味着日期不一定是排序的 。 那么事项太多如何更好管理,而不至于遗忘关键节...【详细内容】
2021-11-16  Tags: Excel  点击:(23)  评论:(0)  加入收藏
大家好,我是Python进阶者。前几天给大家分享了一些乱码问题的文章,阅读量还不错,感兴趣的小伙伴可以前往:盘点3种Python网络爬虫过程中的中文乱码的处理方法,UnicodeEncodeError:...【详细内容】
2021-11-01  Tags: Excel  点击:(34)  评论:(0)  加入收藏
经常用 Excel 的表哥表姐们,想必都知道「下拉菜单」这个神器,鼠标点点点,就能轻轻录入数据:▲ 一级下拉菜单 它的制作方法也很简单,用【数据验证】功能可以直接实现! 有小伙伴表示...【详细内容】
2021-10-27  Tags: Excel  点击:(41)  评论:(0)  加入收藏
在工作中, 我们需要对业务人员的业绩进行跟进,会有如下格式的跟进表 每天要进行更新表格的时候,表头都要重新手动的进行输入,比较麻烦,今天教大家的技巧是使用公式进行自动更新首...【详细内容】
2021-10-26  Tags: Excel  点击:(42)  评论:(0)  加入收藏
▌简易百科推荐
回答这个问题前首先要了解一度电的定义一度电= 1000W·h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(5)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(18)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(13)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(11)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维·卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(26)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(31)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(35)  评论:(0)  加入收藏
在昨天的微信《远程办公危机四伏,到底该pick谁给你保驾护航?》中介绍了远程员工应该具备的四大安全工具,今天继续分享干货:05 双因子令牌在理想的情况下,每个人都会对所有的关键...【详细内容】
2021-10-26    计算机世界  Tags:远程办公   点击:(32)  评论:(0)  加入收藏
今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机...【详细内容】
2021-10-09  懒懒散散的程序员    Tags:RGB   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条