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

Excel报表的导入、导出

PDF文件的导出

打印表格

经过技术选型,项目组一致决定通过表格组件SpreadJS 来实现。以下是实现Excel报表的导入导出、PDF导出、打印表格的一些思路,供大家参考:

环境介绍

后台:Spring Boot 2.x

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

组件:SpreadJS v11

项目运行效果:

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

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

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

"dependencies": {

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

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

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

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

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

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

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

"file-saver": "2.0.2",

"jquery": "2.2.1",

"vue": "^2.5.2",

"vue-router": "^3.0.1"

},

执行npm install 命令安装SpreadJS 组件

导入导出Excel报表

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

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

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

exportXlsx () {

let ex = new ExcelIO.IO()

let json = this.spread.toJSON()

ex.save(json, function (blob) {

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

}, function (e) {

console.log(e)

})

},

importXlsx(){

let self = this;

var excelIO = new ExcelIO.IO();

console.log(excelIO);

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

excelIO.open(excelFile, function (json) {

let workbookObj = json;

self.spread.fromJSON(workbookObj);

}, function (e) {

alert(e.errorMessage);

});

}

导出PDF的注意事项

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

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

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

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

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

savePdf(){

let self = this;

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

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

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

printSpread.savePDF(function(blob) {

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

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

}, function(error) {

console.log(error);

}, {

title: 'Print',

});

}

纯前端表格控件SpreadJS,可满足 .NET、Java、App 等应用程序中的 Web Excel 组件开发、数据填报、在线文档、图表公式联动、类 Excel UI 设计等业务场景,并在数据可视化、Excel 导入导出、公式引用、数据绑定、框架集成中无需大量代码开发和测试,极大降低了企业研发成本和项目交付风险。

本文转载自葡萄城

购正版SpreadJS报表控件授权限时优惠!最高立减万元!点击了解更多优惠

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:葡萄城

html实现pdf导出excel表格,一篇文章详解:Vue框架下轻松实现Excel、PDF导出相关推荐

  1. 一篇文章详解大数据技术和应用场景

    " 本文作者 陈睿 ,优知学院创始人 新技术.新趋势往往趋之若鹜却又很难说的透彻,希望这篇文章能让大家完整的理解什么是大数据:该篇包含:大数据.技术.场景应用以及大数据的岗位. 什么是大数据 ...

  2. 一篇文章详解BAT薪资构成、晋升体系、绩效考核

    " BAT薪资.级别与晋升这一块,全国采取的都是一套体系,下面就为大家详细介绍腾讯.阿里巴巴.百度内部的薪资等级情况. 一:腾讯 薪资.级别与晋升这一块,BAT一般全国采取的都是一套体系,下 ...

  3. java 获取oracle表结构_Java导出oracle表结构实例详解

    Java导出oracle表结构实例详解 发布于 2020-7-20| 复制链接 摘记:  Java导出oracle表结构实例详解最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个. ...

  4. 一篇文章入门深度学习框架PyTorch

    一篇文章入门深度学习框架PyTorch 1 Tensor(张量) 2 Variable(变量) 3 Dataset(数据集) 4 nn.Module(模组) 5 torch.optim(优化) 一阶优 ...

  5. matlab导入数据作图,如何将excel表格中大量数据导入matlab中并作图:excel表格数据制图软件...

    是否有能替代Excel作图表的软件? 我认为数据观你可以试试,因为它提供多种可视化图表,涵盖所有excel提供的图形,您可以进行任何个性化设置. 将excel数据制作成漂亮图表的软件?做图表用什么软件 ...

  6. 用计算机函数查找,Excel查找函数Vlookup详解及应用示例-excel技巧-电脑技巧收藏家...

    Excel查找函数Vlookup详解及应用示例 招如其名.此招用来在一个茫茫的数据源中,自动让电脑找出你要的某个数据的相关资料并填在指定的地方.也是就是,可以让电脑在一个表格或指定的一个区域中查找某一 ...

  7. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  8. python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解

    扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...

  9. 如何使用计算机Excel公式if,Excel条件函数If详解及应用示例-excel技巧-电脑技巧收藏家...

    Excel条件函数If详解及应用示例 此招用来对某一条件执行的真假值进行判断,根据逻辑计算的真假值,返回不同结果.如果结果为真,则返回一个真,如果为假,则返回另一值,可谓左右逢源. 使用语法 IF(l ...

最新文章

  1. C/C++包管理工具Conan简介
  2. js空对象undefined
  3. Where we can find sharepoint user list
  4. 零基础python从入门到精通 pdf-跟老齐学Python从入门到精通 电子版(pdf格式)
  5. php根据当前日期判断法定节假日_判断日期是否为法定节假日的API接口与示例函数...
  6. 【Android】 Intent应用详解
  7. python web框架 多线程_python 简单web框架: Bottle
  8. CF1375F-Integer Game【交互】
  9. 多项式相关操作学习笔记
  10. 【AI视野·今日NLP 自然语言处理论文速览 第二十一期】Fri, 24 Sep 2021
  11. 浏览器的全屏功能小结
  12. 看完这篇再不会 View 的动画框架,我跪搓衣板
  13. Python 字典(Dictionary) items()方法
  14. ASP.NET 控制页概览
  15. eclipse如何下载插件
  16. 双网络打印机虚拟服务器,在VMware Workstation 7虚拟机中使用主机打印机
  17. 如何申请成为企业微信,并成为第三方服务商
  18. vue 仿外卖app-数据mock部分
  19. ORACLE违反协议异常
  20. 社恐怎么办?这个漫画或许能治愈你

热门文章

  1. 如何在 Python 数据中灵活运用 Pandas 索引?
  2. 谁来结束 GUI 程序?| CSDN 博文精选
  3. 不止 RTC 技术盛会,你还应该知道的声网给开发者的福利
  4. 跳槽失败到月薪50K,AI工程师是这样炼成的!
  5. 程序员该如在低代码和无代码开发中抉择?
  6. 女神节 | 那些奋斗在 IT 领域的“女神”们
  7. 程序员如何备战全国计算机二级(Python)考试?
  8. PHP 7.3 比 PHP 7.0 快 22%,即将进入特性冻结阶段
  9. 网络编程之 字节序和深入理解bind()函数
  10. day10【过渡】分布式理论