首先 导出这些文件 一个word/excel模板是必须的,表格还好说 直接在需要的页面中找出相应字段 组成 表格头list 即可如下:

设置导出表格的表头:

表头设置格式为   列名 :源数据属性名。

此外 引入vue-json-excel    (npm install vue-json-excel -S ) 注册downloadExcel组件

代码:

  <download-excelclass="export-btn1":data="outdata"   :fields="jsonFields"type="xls"header="报名列表"name="报名列表.xls">批量导出</download-excel>
//outdata 为需导出的源数据 

导出表格就ok了  似不似很简单QAQ

word导出:

此处word导出需引入以下四个包:


npm install --save jszip-utils
npm install --save docxtemplater
npm install --save file-saver
npm install --save jszip@2.6.0
npm install --save open-docxtemplater-image-module

模板放在public中:

模板填写规则(数据源中属性名加个大括号,若有数组需遍历:  {#数组名}为起 {/数组名}为止 另外图片:{%image}):

代码:

      <el-buttonstyle="float: right; padding: 3px 0"type="text"@click="ExportWord()">导出word</el-button>.....import JSZipUtils from 'jszip-utils'
import docxtemplater from 'docxtemplater'
import { saveAs } from 'file-saver'
import JSZip from 'jszip'......ExportWord () {// word导出var ImageModule = require('open-docxtemplater-image-module');let _this = this;// 读取并获得模板文件的二进制内容JSZipUtils.getBinaryContent('1.docx', function (error, content) {// 1.docx是模板。我们在导出的时候,会根据此模板来导出对应的数据// 抛出异常if (error) {throw error}// 图片处理let opts = {}opts.centered = true;  // 图片居中,在word模板中定义方式为{%%image}opts.fileType = "docx";opts.getImage = function (chartId) {return _this.base64DataURLToArrayBuffer(chartId);}opts.getSize = function () {return [100, 120]}let imageModule = new ImageModule(opts);// 创建一个JSZip实例,内容为模板的内容const zip = new JSZip(content)// 创建并加载docxtemplater实例对象let doc = new docxtemplater();doc.attachModule(imageModule);doc.loadZip(zip);// 设置模板变量的值doc.setData({// ..._this.form, //这里是上面form表单的内容..._this.outdata,image: 'data:image/png;base64,' + _this.imgBase64})try {// 用模板变量的值替换所有模板变量doc.render()} catch (error) {// 抛出异常const e = {message: error.message,name: error.name,stack: error.stack,properties: error.properties}console.log(JSON.stringify({error: e}))throw error}// 生成一个代表docxtemplater对象的zip文件(不是一个真实的文件,而是在内存中的表示)const out = doc.getZip().generate({type: 'blob',mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'})// 将目标文件对象保存为目标类型的文件,并命名saveAs(out, '报名文档.docx')})},

此刻导出word也OK了 ,我这里导出word中还要有图片 这里也一块贴出来了:

base64DataURLToArrayBuffer (dataURL) { //word导出图片有关const base64Regex = /^data:image\/(png|jpg|svg|svg\+xml);base64,/;if (!base64Regex.test(dataURL)) {return false;}const stringBase64 = dataURL.replace(base64Regex, "");let binaryString;if (typeof window !== "undefined") {binaryString = window.atob(stringBase64);} else {binaryString = new Buffer(stringBase64, "base64").toString("binary");}const len = binaryString.length;const bytes = new Uint8Array(len);for (let i = 0; i < len; i++) {const ascii = binaryString.charCodeAt(i);bytes[i] = ascii;}return bytes.buffer;},

纯前端导出 wordexcel表格相关推荐

  1. VUE纯前端导出excel表格功能《转载》

    插件:使用vue-json-excel插件实现Vue纯前端导出简单的Excel表格功能. 使用方法 1. 安装依赖 npm install vue-json-excel 2. 引入组件 a. 全局引入 ...

  2. vue导出excel加一个进度条_vue纯前端导出excel表格

    一.安装依赖 npm install file-saver --save npm install xlsx --save npm install script-loader --save-dev 二. ...

  3. vue element ui 利用xslx导出文档表格功能(纯前端导出下载文档)

    目录 前言 步骤: 1.下载xslx 2.导入xslx 3.template中给个点击事件 4.methods中定义函数实现导出 前言 本篇文章记录纯前端导出下载文档功能. 若想查看从后端接收文件流, ...

  4. vue3.0 + xlsx 实现纯前端生成excel表格

    vue3.0 + xlsx 实现纯前端生成excel表格 1.安装依赖 npm install xlsx --save 2.导入依赖 import * as XLSX from 'xlsx' // V ...

  5. 纯前端导出word、pdf、excel、txt、svg文档方法与技巧(附带问题总结)

    文章目录 导出pdf **实现思路:** **问题总结:** **具体代码** **封装好的导出函数,记得引入js插件** 封装方法一: 封装方法二: 封装方法三: 纯前端导出word文档方法与技巧 ...

  6. html5生成excel,H5纯前端生成Excel表格

    H5纯前端生成Excel表格方法如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 var arr = [ 14 { 15 "姓名":"喵喵喵" ...

  7. 纯前端实现xls表格下载

    纯前端实现xls表格下载 1.createXlsStr:生成xls模板字符串函数 xls字符串,基本不需要变更,我们只需要通过变量控制结果即可 worksheet:xls的文件名(不是下载的文件名!) ...

  8. Vue导出word附表部分横向显示(承接上一篇Vue纯前端导出word)

    Vue纯前端导出word直通车 1. 引入js import htmlDocx from "@/utils/html-docx"; 2. page-break-before:alw ...

  9. 纯前端导出export,复杂表格表头合并,表头数据部分动态,

    需求,这样的页面 有多个table,如投标人名单结果那一列,返回的是1就是通过,返回的不是1就是不通过.如资格评审的横表头,评分说明后面的公司即都是数据接口返的,需要处理后才能放在表头这里的.如详细评 ...

最新文章

  1. php 匹配标记,php – 正则表达式匹配没有标记的链接
  2. px4原生源码学习一
  3. React开发(102):别写立即执行函数
  4. Linux实现ICMP PING代码
  5. 从集合大小的定义到数学结构-解决了多年的疑惑
  6. 芯片上链,英特尔加入蚂蚁区块链生态
  7. java 数据路id增长策略_基于数据库实现ID自动生成策略
  8. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  9. [LintCode] 翻转二叉树
  10. 安卓机器人做图软件_移动机器人领域,除了工业(安卓)一体机,工控机也必不可少...
  11. 机器人拉格朗日动力学应用公式详解
  12. 【线性代数】n阶行列式展开多少项?
  13. NAT技术与代理服务器调研
  14. 劫持ZwQuerySystemInformation函数实现进程隐藏
  15. SEO是做什么的,每天需要做什么
  16. zblog 全站ajax,ZBlog全站缓存
  17. eclipse文档注释设置、文件(Files)注释标签、类型(Types)注释标签(类的注释)、字段(Fields)注释标签、构造函数(Constructor)标签
  18. 极光推送集成APP和web服务
  19. 不升职还能加薪,美团5年首次职级大调整
  20. sl软件安装方式总结

热门文章

  1. Canvas 教程:如何绘制带箭头的曲线
  2. PCB设计-数字供电和模拟供电电源隔离
  3. SlySoft.Game.Jackal.Pro.v3.0.0.5-YAG
  4. 带你认识最基本的网页和网站,什么是静态网页和动态网页,有什么区别?
  5. 得力电力监测仪产品体验
  6. 2023 年第八届数维杯数学建模挑战赛 A题详细思路
  7. 美团弹性伸缩系统的技术演进与落地实践
  8. nginx常用命令、反向代理、匹配规则
  9. 别拿汇报不当事!5个技巧教你做好职场汇报!
  10. 项目经理怎样结构化的给客户做汇报?